2017-08-06 2 views
0

私はtensorflowを初めて使いました.TFレコードの使用を避けるためにTensorflow: use pretrained inception modelに記載されているスクリプトを使ってみましたが、すべての予測が同じ誤ったクラスになります。しかし、評価分類器は正しい結果を生成するので、モデルではありません。私は前処理が私が間違っていると信じています。Tensorflow:Image前処理Inception v4が私のjpgを受け付けない

私は開始処理の前処理機能を試してみることにしましたが、今は自分のjpgを受け入れません。私はこのエラーを取得する:

inception_preprocessing.py", line 265, in preprocess_for_eval 
    image = tf.image.central_crop(image, central_fraction=central_fraction) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/image_ops_impl.py", line 335, in central_crop 
    _Check3DImage(image, require_static=False) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/image_ops_impl.py", line 129, in _Check3DImage 
    raise ValueError("'image' must be three-dimensional.") 
ValueError: 'image' must be three-dimensional. 

は、ここに私のコードです:

arg_scope = inception_utils.inception_arg_scope() 
im_size = 299 

inputs = tf.placeholder(tf.float32, (None, im_size, im_size, 3)) 
inputs = inception_preprocessing.preprocess_image(inputs, im_size, im_size) 

with slim.arg_scope(arg_scope): 
    logits, end_points = inception_v4.inception_v4(inputs) 

saver = tf.train.Saver() 
saver.restore(sess,ckpt_file) 

for image in sample_img: 
    im = Image.open(image) 
    im = im.resize((im_size,im_size)) 
    im = np.array(im) 

    logit_values = sess.run(logits, feed_dict={inputs:im}) 

    print(np.argmax(logit_values)) 
+0

あなたは、IMの形状を確認しましたか? –

答えて

0
inputs_processed = inception_preprocessing.preprocess_image(tf.squeeze(inputs), im_size, im_size) 
inputs_processed = tf.expand_dims(inputs_processed, 0) 
with slim.arg_scope(arg_scope): 
    logits, end_points = inception_v4.inception_v4(inputs_processed) 
# placeholder feed value should be 4D 
im = np.exapnd_dims(np.array(im), 0) 
関連する問題