作者|PRUDHVI VARMA 编译|VK 来源|Analytics Indiamag
在当今世界,人工智能已被大多数商业运作所应用,而且由于先进的深度学习框架,它非常容易部署。这些深度学习框架提供了高级编程接口,帮助我们设计深度学习模型。使用深度学习框架,它通过提供内置的库函数来减少开发人员的工作,从而使我们能够更快更容易地构建模型。
在本文中,我们将构建相同的深度学习框架,即在Keras、PyTorch和Caffe中对同一数据集进行卷积神经网络图像分类,并对所有这些方法的实现进行比较。最后,我们将看到PyTorch构建的CNN模型如何优于内置Keras和Caffe的同行。
本文涉及的主题
如何选择深度学习框架。
Keras的优缺点
PyTorch的优缺点
Caffe的优缺点
在Keras、PyTorch和Caffe实现CNN模型。
选择深度学习框架
在选择深度学习框架时,有一些指标可以找到最好的框架,它应该提供并行计算、良好的运行模型的接口、大量内置的包,它应该优化性能,同时也要考虑我们的业务问题和灵活性,这些是我们在选择深度学习框架之前要考虑的基本问题。让我们比较三个最常用的深度学习框架Keras、Pytorch和Caffe。
Keras
Keras是一个开源框架,由Google工程师Francois Chollet开发,它是一个深度学习框架,我们只需编写几行代码,就可以轻松地使用和评估我们的模型。
如果你不熟悉深度学习,Keras是初学者最好的入门框架,Keras对初学者十分友好,并且易于与python一起工作,并且它有许多预训练模型(VGG、Inception等)。不仅易于学习,而且它支持Tensorflow作为后端。
使用Keras的局限性
Keras需要改进一些特性
我们需要牺牲速度来换取它的用户友好性
有时甚至使用gpu也需要很长时间。
使用Keras框架的实际实现
在下面的代码片段中,我们将导入所需的库。
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K
超参数:
batch_size = 128
num_classes = 10
epochs = 12
img_rows, img_cols = 28, 28
(x_train, y_train), (x_test, y_test) = mnist.load_data()
在下面的代码片段中,我们将构建一个深度学习模型,其中包含几个层,并分配优化器、激活函数和损失函数。
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
mode