🌓

简单训练一下Animal-10的数据(第一版,精度很拉垮)

之前一直用CIFAR-10的数据做训练。这个数据已经内置到Keras里了,所以拉取数据很方便,只需要一行cifar10.load_data()即可。但是在实际工作中,最终肯定还是用自己的图片作为素材进行训练,所以这次决定下载Animals-10作为训练素材。

阅读全文

通过Data Augmentation把CIFAR10的训练精度提升到89%

我们先来回顾一下上一次的训练结果:

CleanShot-2022-04-28-10.42.58

可以看到在训练不到20批的时候,训练精度就与测试精度分道扬镳了。这算是一种过拟合。目前我们手上的工具箱也就剩数据增强还没用了。理论上数据增强可以弥补训练集太小的问题,从而缓解过拟合的现象。实话说,在实际操作中,这种方法已经被检验过有效了。但是总给人一种用一种机器去欺骗另一种机器的感觉,我个人觉得,机械化数据增强应该早晚被更优秀的训练模型所取代。

阅读全文

通过BatchNormalization把CIFAR10的训练精度提升到85%

在不借助数据增强的情况下,我们已经一路把验证精度从70%多提升到了80%的水平,今天,我们借助BatchNormalization可以进一步把精度提升到超过85%。话不多说,先看结果:

阅读全文

在Apple Silicon上关闭M1的GPU,仅用CPU进行Tensorflow训练

在苹果M1系列芯片上运行tensorflow是可以通过插件tensorflow-metal进行GPU训练加速的,并且随着操作系统的升级以及插件的不断完善,M1的训练性能正在稳步提高,这也是苹果官方推荐的做法。

阅读全文

通过加深网络把CIFAR10的训练精度提升到80%

这次继续,在原来网络的基础上,加深了卷积层的数量,从原来的3层卷积,加深到了6层。核心代码如下:

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3),padding='same'))
model.add(layers.Conv2D(32, (3, 3), activation='relu',padding='same'))
model.add(layers.MaxPooling2D((2, 2)))

model.add(layers.Conv2D(64, (3, 3), activation='relu',padding='same'))
model.add(layers.Conv2D(64, (3, 3), activation='relu',padding='same'))
model.add(layers.MaxPooling2D((2, 2)))

model.add(layers.Conv2D(128, (3, 3), activation='relu',padding='same'))
model.add(layers.Conv2D(128, (3, 3), activation='relu',padding='same'))
model.add(layers.Flatten())
model.add(layers.Dropout(0.5))

model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(10, activation='softmax'))

阅读全文

使用简单的CNN训练CIFAR10,理解padding='same'的含义

今天在训练CIFAR10数据的时候,稍微调整了下网络,对卷积层增加了padding,最终结果得到了一定的改善:

CleanShot 2022-04-14 at 20.05.02

阅读全文

普普通通的CNN训练CIFAR-10

之前用VGG16训练了一次CIFAR10数据集,我还说用VGG16会有一个不错的起点呢,毕竟是业界训练好的模型嘛。结果今天用自建的卷积神经网络一测,结果出乎意料,自建的神经网络虽然训练精度的上升没有之前的快,但是验证精度也能达到75%的水平,跟上次区别不大。同时,虽然这次迭代次数有增加,但是得益于模型简化了许多,训练速度也提升了不少。话不多说,上结果:

阅读全文

在windows里杀进程,遭遇提示:没有此任务的实例在运行

今天有被windows给坑了一把,有个几个进程死活结束不掉,还遇到提示:“没有此任务的实例在运行”,所以做个笔记。

以名称为xxx.exePID1024为例,正常来说,杀掉一个进程命令如下:

taskkill /F /PID 1024

阅读全文

使用VGG16训练CIFAR-10的一次失败记录

最近研究深度学习,主要想做计算机视觉相关的事情。因为我是个纯新手,所以想把一些学习进展记录一下。毕竟深度学习的超参数设置,还是非常依赖经验的,而我在这方面只是个小白,如果我能把每次训练的情况,都详细记录下来,或许能够帮助我总结一些经验。毕竟跑一次训练,少则几分钟,多则数十分钟(我是M1 Air,没风扇,也不敢跑太久的),既然这时间都花了,所以结果还是记录的越详细越好。

阅读全文

《程序员的38堂成长课》读后小记

IMG_2E23A74A58A6-1

就如书名一样,这本书由38个主题组成,并且颇具课堂的感觉,好似来自一位长者的谆谆教诲。所以这种书读起来是很考验读者的,因为作者讲的道理都对,但是读者依其经验的多寡,思索的深浅,往往会有不同的体会。愚者,可能会抱怨这本书充满了说教;而智者,反而会跟随作者的节奏忍不住拍手喝彩。

阅读全文