我一直在训练一个卷积神经网络,我在Google cloud ML engine
上使用张量流开发了一段时间,但它没有用。我的工作成功运行,直到它达到了我的代码中的位置,我在我的cnn模型上运行训练操作,eval ops等,然后它因为某些未知原因而停留在那里。
这就是我提交工作的方式:
gcloud ml-engine工作提交培训" test_job9" --job-dir gs:// project / output --runtime-version 1.2 --module-name trainer.train_cnn_cloud --package-path ./trainer --region us-east1 --scale-tier BASIC_GPU - - trainpath gs://project/data/train.tfrecords --evalpath gs://project/data/valid.tfrecords
这是我的cpu和内存利用率在作业运行时的样子:
这里是过去工作的日志:
正如您所看到的,它将所有输入分配给cpu,但是我的CNN模型中使用的所有变量(我在代码中明确分配给gpu)都分配给了gpu。
您可以根据我使用的日志记录查看代码卡在哪里:
logging.info("\nStart training (save checkpoints in %s)\n" % self.config['jobdir'])
for _ in range(self.config['numepochs']):
sess.run(train_iterator.initializer)
while True:
try:
start_time = time.time()
train_input_vals, train_label_vals = sess.run([train_features['input'], train_labels])
logging.info('Training vals retrieved')
feed_dict = {m._inputs:train_input_vals,
m._labels:train_label_vals,
m.batch_size:self.config['train_batch_size'],
m.dropout_keep:self.config['dropout']}
_, loss_value, eval_ops, predictions, current_lr, curlabels= sess.run([m._train_op, m._total_loss,
m._eval_op, m._predictions,
m._learning_rate,
m._labels_class1],
feed_dict)
logging.info('loss retrieved')
global_step += 1
在运行火车和评估操作之前检索输入后,它会立即卡住。
代码在我的笔记本电脑上成功运行。值得注意的是,我使用python 3.6
在我的笔记本电脑上运行代码,其中Windows 10
为操作系统,gcloud ml-engine
使用python 2.7
和Ubuntu
。我在过去的运行中遇到了错误,但我认为使用_future_
修复了这个错误。
非常感谢您对此进行调查!