加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

对比复现34个预训练模型,PyTorch和Keras你选谁?

发布时间:2019-03-12 05:30:18 所属栏目:建站 来源:机器之心编译
导读:Keras 和 PyTorch 当然是对初学者最友好的深度学习框架,它们用起来就像描述架构的简单语言一样,告诉框架哪一层该用什么。这样减少了很多抽象工作,例如设计静态计算图、分别定义各张量的维度与内容等等。 但是,到底哪一个框架更好一点呢?当然不同的开发

这些问题都是现实存在的,原 GitHub 项目为每个问题都提供了链接。项目作者的目标之一是通过为 Keras 预训练模型创建可复现基准,从而帮助解决上述的一些问题。解决方法可分为以下三个方面,在 Keras 中要做到:推理期间避免分批(batches)。

每次运行一个样本,这样做非常慢,但可以为每个模型得出一个可复现的输出。

只在本地函数或 with 语句中运行模型,以确保在加载下一个模型时,前一个模型的任何东西都不会保存在内存中。

2. 预训练模型复现结果

以下是 Keras 和 PyTorch 的「实际」验证集准确度表(已经在 macOS 10.11.6、Linux Debian 9 和 Ubuntu 18.04 上得到验证)。

3. 复现方法

首先需要下载 ImageNet 2012 验证集,该数据集包含 50000 张图片。在 ILSVRC2012_img_val.tar 下载完成后,运行以下命令行预处理/提取验证集:

  1. # Credit to Soumith: https://github.com/soumith/imagenet-multiGPU.torch 
  2. $ cd ../ && mkdir val && mv ILSVRC2012_img_val.tar val/ && cd val && tar -xvf ILSVRC2012_img_val.tar 
  3. $ wget -qO- https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh | bash 

ImageNet 验证集中每个示例的 top 5 预测已经进行了预计,运行以下命令行将直接使用这些预计算结果,并在几秒内复现 Keras 和 PyTorch 基准。

  1. $ git clone https://github.com:cgnorthcutt/imagenet-benchmarking.git 
  2. $ cd benchmarking-keras-pytorch 
  3. $ python imagenet_benchmarking.py /path/to/imagenet_val_data 

不使用预计算数据也可以复现每个 Keras 和 PyTorch 的推理输出。Keras 的推理要花很长时间(5-10 小时),因为每次只计算一个示例的前向传播,还要避免向量计算。如果要可靠地复现同样的准确率,这是目前发现的唯一的方法。PyTorch 的推理非常快(一个小时都不到)。复现代码如下:

  1. $ git clone https://github.com:cgnorthcutt/imagenet-benchmarking.git 
  2. $ cd benchmarking-keras-pytorch 
  3. $ # Compute outputs of PyTorch models (1 hour) 
  4. $ ./imagenet_pytorch_get_predictions.py /path/to/imagenet_val_data 
  5. $ # Compute outputs of Keras models (5-10 hours) 
  6. $ ./imagenet_keras_get_predictions.py /path/to/imagenet_val_data 
  7. $ # View benchmark results 
  8. $ ./imagenet_benchmarking.py /path/to/imagenet_val_data 

你可以控制 GPU 的使用、批大小、输出存储目录等。运行时加上-h flag,可以查看命令行参数选项。

看完文章之后,你更中意谁呢?

原文链接:http://l7.curtisnorthcutt.com/towards-reproducibility-benchmarking-keras-pytorch

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

【编辑推荐】

  1. 如何理解深度学习的优化?通过分析梯度下降的轨迹
  2. 2018年下半年,别错过这些深度学习项目!
  3. 深度学习果实即将摘尽?11位大牛谈AI的当下(2018)与未来(2019)
  4. 深度学习已经触到天花板了吗
  5. 人脸识别技术总结:从传统方法到深度学习
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读