机器学习小白的痛苦经历——学习Cifar-10数据集的故事

    前几天自己在那瞎鼓捣MNIST数据集,天赋太差,一知半解吧。还有就是TensorBoard始终调不出来,没法跟直观的看到效果,网上找了各种方法都试不通,算了,先不管。我按照TensorFlow中文社区上的教程继续学习,接下来的教程用到了Cifar-10数据集,对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组32x32RGB的图像进行分类,这些图像涵盖了10个类别:飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船以及卡车。

    机智的我又找到了 GitHub上的yhlleo大神,果然找到他以前的代码。当然,代码也没跑通,原因还是因为有些函数更新了。查查资料后就把几个函数更改了,然后就能跑通了。可以参考我修改过的代码,但还是觉得自己去改一下吧。挺快的,也不难。还有就是我的电脑上没有GPU,所以cifar10_multi_gpu_train.py的代码就没动过了,话说cifar10_train.py的好慢啊!跑了两个多小时了,loss才降到1.20左右。无聊了,就来写点东西,质量是肯定没保障的,就是感觉好玩吧。

    还有一个要注意的事。我是事先到官网上下了Cifar-10的数据包的,但是每次运行的时候还是要去自动去下载那个包,而且每次下到10%几、20%几就吓不动。怎么吓它都不动。原因是它每次到固定路径去找那个包,没找到的话就会调用cifar10.py里的maybe_download_and_extract()函数去官网下载。所以,要么修改它FLAGS中预设的data_dir地址到你事先吓好的包的位置,要么把包放到它预设的地址下,这里需要在目录下新建一个cifar10_data文件夹,并把包放到里面。(这个包吓好就行了,不需要解压出来的)

    看着程序还在跑,loss一直下不去,我突然意识到,会不会是这个包被我吓坏了想想可能是它迭代到一定程度了,没法再提高它的精度 算法的迭代效果本来就是越接近终点越缓慢的,而且初始的时候迭代的次数也设的比较高,所以后面就感觉没什么效果了。具体的算法和要调用的函数还是要去看官方文档说明,一步步慢慢去理解。

猜你喜欢

转载自blog.csdn.net/weixin_42029090/article/details/80042139