2017-05-07 4 views
0

私はローカルに保存したトレーニングとテストに基づいて簡単なモデルを作成しようとしています。私はここにあるガイド:https://www.tensorflow.org/tutorials/layersに従っていますが、私自身のニーズに応えるためにコードを編集し始めました。どこかからロードされたものの代わりにローカルに保存した画像を使用しています。テンソルフロー分類子のフィットを実行するときに奇妙なエラーが発生する

mnist_classifier = learn.Estimator(
     model_fn=cnn_model_fn, model_dir="/tmp/mnist_convnet_model") 


tensors_to_log = {"probabilities": "softmax_tensor"} 
logging_hook = tf.train.LoggingTensorHook(
     tensors=tensors_to_log, every_n_iter=50) 

testData = [] 
testLabels = [] 
for filename in os.listdir('images'): 
    im = cv2.imread('images/' + filename) 
    testData.append(im) 
    testLabels.append(np.int32(1.0)) 

for filename in os.listdir('notImages'): 
    im = cv2.imread('notImages/' + filename) 
    testData.append(im) 
    testLabels.append(np.int32(0.0)) 

evalTestData = [] 
evalTestLabels = [] 
for filename in os.listdir('evalImages'): 
    im = cv2.imread('evalImages/' + filename) 
    evalTestData.append(im) 
    evalTestLabels.append(np.int32(1.0)) 

for filename in os.listdir('evalNotImages'): 
    im = cv2.imread('evalNotImages/' + filename) 
    evalTestData.append(im) 
    evalTestLabels.append(np.int32(0.0)) 

testData = np.array(testData) 
testLabels = np.array(testLabels) 
evalTestData = np.array(evalTestData) 
evalTestLabels = np.array(evalTestLabels) 

mnist_classifier.fit(
     x=testData, 
     y=testLabels, 
     batch_size=10, 
     steps=20000, 
     monitors=[logging_hook]) 

それは、このフィットコマンドは、次のコードをキックオフようだ:

input_layer = tf.reshape(features, [-1, -1, -1, 3]) 

conv1 = tf.layers.conv2d(
     inputs=input_layer, 
     filters=32, 
     kernel_size=[5, 5], 
     padding="same", 
     activation=tf.nn.relu) 

このtf.layers.conv2d事は、私は次のエラーを取得するようクラッシュを引き起こしているようだ:

File "cnn_mnist.py", line 37, in cnn_model_fn 
    activation=tf.nn.relu) 

TypeError: Value passed to parameter 'input' has DataType string not in list of allowed values: float16, float32, float64 

私はちょっとした検索をしようとしましたが、特にこの問題について話している人は見つかりませんでした。明らかに何かがあってはならない文字列です。それは、私がローカルイメージを使用するようにこのコードについて変更された何かが、私が訂正していないものを壊したようです。何か案は?

編集:機能変数のタイプを印刷して、それがテンソルだと言いました。

Tensor("input:0", shape=(?, 1), dtype=string) 

このdtypeは文字列ではなく、形状が間違っているべきではありません。これはおそらく私のエラーを作成しているようです。どのようにそれを修正するための任意のアイデア???次の行を追加することにより、固定

+0

まず、彼らはすべての数字かそうでないことを確認するために、 'TESTDATA、testLabels、evalTestData、evalTestLabels'を、確認してください。 –

答えて

0

input_layer = tf.to_float(input_layer) 
関連する問題