現在、ニューラルネットワークをトレーニングしようとしています。私はファイル名とそれに対応するラベルの配列を持っています。しかし、私はネットワークを訓練しようとするときに問題を抱えています。入力キューが応答しないTensorFlowプログラムがハングする
image_list, label_list = readImageLables()
images = ops.convert_to_tensor(image_list, dtype=dtypes.string)
labels = ops.convert_to_tensor(label_list, dtype=dtypes.int32)
with tf.Session() as sess:
init_op = tf.initialize_all_variables()
sess.run(init_op)
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
for epoch in range(hm_epochs):
epoch_loss = 0
for _ in range(int(7685/batch_size)):
print(labels.eval())
filename_queue = tf.train.slice_input_producer([images,labels], num_epochs=10, shuffle=True)
image,label = read_images_from_disk(filename_queue)
print(image.eval())
epoch_x, epoch_y = tf.train.batch([image, label], batch_size=batch_size)
print("wait what")
#imgs, lbls = epoch_x.eval(), epoch_y.eval()
_, c = sess.run([optimizer, cost], feed_dict={x: epoch_x.eval(), y: epoch_y.eval()})
epoch_loss += c
print('Epoch', epoch, 'completed out of',hm_epochs,'loss:',epoch_loss)
イメージデータを印刷しようとしている行で、プログラムがハングします。この行が削除されても、このデータを供給している最後のsess.run呼び出しでプログラムが停止しています。キューランナー、コーディネーターなどを初期化しました。しかし、私はfilename_queueに問題があると感じています。 tf.train.slice_input_producer行に欠けているものはありますか?また、プログラムがぶら下がっている、またはロードするのにちょっと時間がかかります。バッチサイズが100、画像が80×70のエポックをロードするのに、通常どのくらいの時間がかかりますか?
あなたは 'top'や' nvidia-smi'のリソースを利用していますか? – drpng