TensorFlowで転送学習を使用しています。Inception V3モデルを使用して画像の特徴ベクトルを計算する必要があります。 JPG形式の画像の計算は問題ありませんが、PNG形式の計算は間違っています。Inception v3モデルを使用して、転送学習でPNG画像の特徴ベクトルを計算する方法
# read model
with gfile.FastGFile(os.path.join(MODEL_DIR, MODEL_FILE), 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
bottleneck_tensor, jpeg_data_tensor = tf.import_graph_def(graph_def, return_elements=[BOTTLENECK_TENSOR_NAME, JPEG_DATA_TENSOR_NAME])
......
# get imagepath
image_path = get_image_path(image_lists, INPUT_DATA, index, category)
# read image
image_data = gfile.FastGFile(image_path, 'rb').read()
# calculate the feature vector
# **This statement is wrong when png images**
bottleneck_values = sess.run(bottleneck_tensor, {jpeg_data_tensor: image_data})
コンソールのエラーが含まれています:
......
Not a JPEG file: starts with 0x89 0x50
......
InvalidArgumentError (see above for traceback): Invalid JPEG data, size 19839
[[Node: import/DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, dct_method="", fancy_upscaling=true, ratio=1, try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_import/DecodeJpeg/contents_0)]]
を私は間違ったキーコードの画像を読み取ることであるが、私はPNG形式をサポートするためにそれを修正する方法がわからない、誰かことができますね助けて?
ありがとうございました
ありがとうございます。解決策を見つけました。私はPNG形式をサポートするように変更することはできませんが、PNG形式の画像を読み込んでJPEG形式に変換できます。 –