序文
TFRecord、エラーが.tfrecordファイル中に発生した*リーダーをtensorflow使用するプロセスでは、このエラーを解決します。
エラー説明:
OutOfRangeError(上記を参照のためにトレースバック):RandomShuffleQueue ' _1_shuffle_batch / random_shuffle_queueが'閉じられ、不十分な要素を有する(要求64を、現在のサイズ62 ) [[ノード:shuffle_batch = QueueDequeueManyV2 [component_types = [DT_UINT8、DT_INT32、DT_FLOAT、DT_FLOAT]、timeout_ms = - 1、_device = " /ジョブ:ローカルホスト/レプリカ:0 /タスク:0 /装置:CPU:0 "(shuffle_batch / random_shuffle_queue、shuffle_batch / N)]]
出典:
image_batch、label_batch、roi_batch、landmark_batch = tf.train.shuffle_batch([IMG、ラベル、ROI、ランドマーク]、 BATCH_SIZE = BATCH_SIZE、 容量 = 容量、 min_after_dequeue = min_after_dequeue、 NUM_THREADS = 7)
原因:
研修の実施では、キューが良いバックグラウンドスレッドで埋められます。あなたが訓練の反復(エポック)の最大数を設定した場合、いくつかの点で、運転チームのサンプルはtf.OutOfRangeErrorミスをスローすることがあります。tensorflowキューはこれ以上の無料サンプルのため、実際の最大反復の最大数に達したためです。推奨コードテンプレートは、このエラーに対処するための構造を..finally try..except必要があるのはこのためです。
様々なパラメータをチェックするために注意を払う、一般的にこのエラーが発生し、コード自体は問題ではありませんが、基本的には、パラメータの設定は一貫性がなく、不適切またはによって引き起こされます。
ブロガーのため、パラメータの変更は以下のとおりです。
1.データフォーマットの矛盾は、データ・フォーマットと一致tfrecord生成します。
機能= tf.parse_single_example(serialized_example、 機能 = { ' IMG ' :tf.FixedLenFeature([])tf.string、 ' ラベル' :tf.FixedLenFeature([]、tf.int64)、 ' ROI ':tf.FixedLenFeature ([4 ]、tf.float32)、 ' ランドマーク':tf.FixedLenFeature([10 ]、tf.float32) })
Int64型INT32にデータラベルの形式。
この点において、変更は、入力画像データのサイズである場所があります。
#IMG = tf.reshape(IMG、[48,48,3]) IMG = tf.reshape(IMG、[img_size、img_size、3])
ここでブロガーのテストデータMTCNNのpos_12_train.tfrecordが生成され、それがimg_sizeここ12でなければなりません。
2. BATCH_SIZEサイズ。
そしてこれは、システムが処理できるロットサイズが大きすぎる、ある動作環境を、一致させる必要がある、しかし、原因。
状況はまた、そうでnum_epochs、NUM_THREADSおよび他のパラメータを、確認する必要があります。
参照
2. TensorFlowのバグ。
完成