无法使用tensorflow-slim从头开始训练模型

时间:2017-03-20 00:59:05

标签: tensorflow

我只是遵循图像分类库的瘦身教程,并制作了imagenet TFRecord。

training-a-model-from-scracth中,代码如下:

TRAIN_DIR=/home/ywlee/models/slim/results/
DATASET_DIR=/Data_ssd/ILSVRC2012/TFRecord/
python train_image_classifier.py \
  --train_dir=${TRAIN_DIR} \
  --dataset_name=imagenet \
  --dataset_split_name=train \
  --dataset_dir=${DATASET_DIR} \
  --model_name=inception_v3

但是,会发生此错误。

NotFoundError (see above for traceback): Key InceptionV3/Conv2d_3b_1x1/weights not found in checkpoint
         [[Node: save/RestoreV2_51 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save/Const_0, save/RestoreV2_51/tensor_names, save/RestoreV2_51/shape_and_slices)]]
         [[Node: save/RestoreV2_233/_1359 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_576_save/RestoreV2_233", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"]()]]

我明白如果我没有指明检查点,这个程序在没有任何预先训练的重量的情况下进行训练。 但我不知道为什么会发生这种错误。

第二个问题是,

我无法完全理解克隆,副本,参数服务器(ps)和工作者的含义,并且在tensorflow multi-gpu手册和slim之间混淆。

你能建议如何训练使用multi-gpu吗?

2 个答案:

答案 0 :(得分:0)

似乎在TRAIN_DIR = / home / ywlee / models / slim / results /中已经存在模型正在尝试加载的检查点。 尝试使用一个没有任何检查点的干净目录。

答案 1 :(得分:0)

添加--num_clones=n可以使用mutli-gpu,如果没有,它会默认使用一个gpu。

清理TRAIN_DIR对我有用,也许有帮助