近日在尝试用AlexNET的预训练模型在其他数据集上进行一些测试,遇到了一些困难,特此记录。
AlexNET的预训练模型及其代码在以下的博客可以看到,注意,其中最后一段建立session时候需要导入模型参数。这是原博客中忽略的一点。
AlexNET预训练模型迁移到猫狗大战数据集上
with tf.Session() as sess:
# 变量初始化
sess.run(tf.global_variables_initializer())
model.load_initial_weights(sess) #将模型的参数导入进去
用多线程处理整个数据集的时候出现了如下问题:
意思是其中某些图片的格式不正确。一开始搜索博客发现可能是有隐藏文件,或者并不是所有图片都是一个格式的。但是经过检查,为了使得TensorFlow方便处理,我也将所有的图片转化为jpeg的格式,转化方法可以通过写一个简单的bat文件就可以将jpg转化为jpeg。
后来发现是格式错误,不知道是什么原因导致,我用二分法对整个图片的数据集进行测试,发现是其中的某一些图片发生了错误。所以将那些图片找出来删除应该就可以了,但是这个工程量太大了,就没有继续做,只是知道了解决办法之一,如果有大佬知道怎么做,可以在下方评论,感激不尽。