在这里,我将除最后一层之外的所有层都设置为具有固定权重(requires_grad = False) , 因此只有最后层中的参数将通过梯度下降进行更新 。
训练模型
下面介绍一下进行训练的函数:
如何获得GPU?
当然,对CPU的训练太慢了 。根据我自己的经验 , 在GPU仅需要一个小时就可以完成12次训练周期,但是在CPU上相同数量的训练周期可能需要花费大约15个小时 。
如果您没有本地可用的GPU,则可以考虑使用云GPU 。为了加速CNN的训练,我使用了floydhub()上提供的云GPU。
这项服务非常指的使用:总有很好的文档和大量的提示,所以你会很清楚的知道下一步需要如何去做 。在floydhub上对于使用GPU的收费也是可以接受的 。
首先,需要将数据集上传到服务器
然后,需要创建项目 。需要在计算机上安装floydhub客户端 , 将数据集上载到其网站并在终端中运行以下命令:
其中'username'是您的登录名,'i'是数据集所在的文件夹 。
这样子在训练网络时就会很轻松了
结果和改进想法
得到的模型在数据集上训练了1.5小时,并在验证数据集上达到了95%的准确度 。
利用Python实现卷积神经网络的可视化在本文中,将探讨如何可视化卷积神经网络(CNN),该网络在计算机视觉中使用最为广泛 。首先了解CNN模型可视化的重要性,其次介绍可视化的几种方法,同时以一个用例帮助读者更好地理解模型可视化这一概念 。
正如上文中介绍的癌症肿瘤诊断案例所看到的 , 研究人员需要对所设计模型的工作原理及其功能掌握清楚,这点至关重要 。一般而言,一名深度学习研究者应该记住以下几点:
1.1 理解模型是如何工作的
1.2 调整模型的参数
1.3 找出模型失败的原因
1.4 向消费者/终端用户或业务主管解释模型做出的决定
2.可视化CNN模型的方法
根据其内部的工作原理,大体上可以将CNN可视化方法分为以下三类:
初步方法:一种显示训练模型整体结构的简单方法
基于激活的方法:对单个或一组神经元的激活状态进行破译以了解其工作过程
基于梯度的方法:在训练过程中操作前向传播和后向传播形成的梯度
下面将具体介绍以上三种方法,所举例子是使用Keras深度学习库实现 , 另外本文使用的数据集是由“识别数字”竞赛提供 。因此,读者想复现文中案例时,请确保安装好Kears以及执行了这些步骤 。
研究者能做的最简单的事情就是绘制出模型结构图,此外还可以标注神经网络中每层的形状及参数 。在keras中 , 可以使用如下命令完成模型结构图的绘制:
model.summary()_________________________________________________________________Layer (type)Output ShapeParam #
=================================================================conv2d_1 (Conv2D)(None, 26, 26, 32)320_________________________________________________________________conv2d_2 (Conv2D)(None, 24, 24, 64)18496_________________________________________________________________max_pooling2d_1 (MaxPooling2 (None, 12, 12, 64)0_________________________________________________________________dropout_1 (Dropout)(None, 12, 12, 64)0_________________________________________________________________flatten_1 (Flatten)(None, 9216)0_________________________________________________________________dense_1 (Dense)(None, 128)1179776_________________________________________________________________dropout_2 (Dropout)(None, 128)0_________________________________________________________________preds (Dense)(None, 10)1290
=================================================================Total params: 1,199,882Trainable params: 1,199,882Non-trainable params: 0
推荐阅读
- 电脑看不见抖音直播怎么办,为什么电脑抖音看不了直播
- papa小程序怎么了,papajohns
- 电商问题如何投诉物流,电商怎么投诉他们
- go语言项目搭建 go语言 开源项目
- sqlserver的数据文件有什么名称,sql server数据库文件有哪些类型?
- C语言有min函数吗 c语言中有min函数吗
- linux下命令6,linux 命令详解
- 为什么两岁宝宝爱看电视,两岁宝宝喜欢看电视
- python语言示例代码,python语言例子