我只是遵循图像分类库的瘦身教程,并制作了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吗?
答案 0 :(得分:0)
似乎在TRAIN_DIR = / home / ywlee / models / slim / results /中已经存在模型正在尝试加载的检查点。 尝试使用一个没有任何检查点的干净目录。
答案 1 :(得分:0)
添加--num_clones=n
可以使用mutli-gpu,如果没有,它会默认使用一个gpu。
清理TRAIN_DIR对我有用,也许有帮助