基于诗人张量流的图像分类器在重新训练期间运行retrain.py时出错

时间:2016-12-07 01:32:12

标签: python python-2.7 python-3.x docker tensorflow

我正在学习“TensorFlow for Poets”教程。

我在再培训步骤上遇到困难,因为某些原因,retrain.py命令(以及附加的其他4行代码)遇到错误。

我认为这可能是一个简单的修复。我能够成功地完成每个步骤的codelab教程,直到使用以下命令执行步骤:

# python tensorflow/examples/image_retraining/retrain.py \
--bottleneck_dir=/tf_files/bottlenecks \
--how_many_training_steps 500 \
--model_dir=/tf_files/inception \
--output_graph=/tf_files/retrained_graph.pb \
--output_labels=/tf_files/retrained_labels.txt \
--image_dir /tf_files/flower_photos

我在Docker终端的命令行输入这个,这是错误:      root @ 3333e49b2f82:/ tensorflow #python tensorflow / examples / image_retraining / retrain.py \

  

- bottleneck_dir = / tf_files / bottlenecks \   --how_many_training_steps 500 \   --model_dir = / tf_files / inception \   --output_graph = / tf_files / retrained_graph.pb \   --output_labels = / tf_files / retrained_labels.txt \   --image_dir / tf_files / flower_photos       Traceback(最近一次调用最后一次):       文件“tensorflow / examples / image_retraining / retrain.py”,第1012行,in                tf.app.run(main = main,argv = [sys.argv [0]] + unparsed)             运行文件“/usr/local/lib/python2.7/dist- packages / tensorflow / python / platform / app.py”,第43行           sys.exit(main(sys.argv [:1] + flags_passthrough))         在主要文件中输入“tensorflow / examples / image_retraining / retrain.py”,第751行           maybe_download_and_extract()         文件“tensorflow / examples / image_retraining / retrain.py”,第313行,在maybe_download_and_extract中           tarfile.open(filepath,'r:gz')。extractall(dest_directory)         文件“/usr/lib/python2.7/tarfile.py”,第2051行,在extractall中           self.extract(tarinfo,path)         文件“/usr/lib/python2.7/tarfile.py”,第2088行,在摘录中           self._extract_member(tarinfo,os.path.join(path,tarinfo.name))         在_extract_member中输入文件“/usr/lib/python2.7/tarfile.py”,第2164行           self.makefile(tarinfo,targetpath)         在makefile中输入“/usr/lib/python2.7/tarfile.py”,第2205行           copyfileobj(来源,目标)         在copyfileobj中输入文件“/usr/lib/python2.7/tarfile.py”,第265行           shutil.copyfileobj(src,dst)         在copyfileobj中输入文件“/usr/lib/python2.7/shutil.py”,第49行           buf = fsrc.read(length)         文件“/usr/lib/python2.7/tarfile.py”,第818行,处于读取状态           buf + = self.fileobj.read(size - len(buf))         文件“/usr/lib/python2.7/tarfile.py”,第736行,处于读取状态           return self.readnormal(size)         文件“/usr/lib/python2.7/tarfile.py”,第745行,处于readnormal状态           return self.fileobj.read(size)         文件“/usr/lib/python2.7/gzip.py”,第261行,处于读取状态           self._read(READSIZE)         文件“/usr/lib/python2.7/gzip.py”,第308行,在_read中           self._read_eof()         文件“/usr/lib/python2.7/gzip.py”,第347行,在_read_eof中           十六进制(self.crc)))       IOError:CRC校验失败0x76f1f85e!= 0x6caceac0L       root @ 3333e49b2f82:/ tensorflow#

基于这些错误我唯一能想到的是它与python2.7有关吗?我在我的机器上安装了python2.7和3.5(Macbook air),我不确定这是否是Docker或tensorflow的问题......

无论如何,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

CRC错误表示压缩文件中的某些数据已损坏。

实际上它正在发生,因为在你运行这个命令的前一次你离开了中间的某个地方(这是我的情况)导致部分下载的初始文件。因此,当您再次运行它时,它会检查CRC与之前部分下载的CRC不匹配。

<强>解决方案:
我删除了之前下载的一个以避免在此时间命令执行期间出现异常。

下载的初始文件将在 / tf_file 中(如果您按照教程命名所有内容)。

所以转到 / tf_files 并删除部分下载的inception /目录。

rm -rf /inception

返回 / tensorflow 并再次运行命令。