私はここでKerasCIFAR10チュートリアルに従っています。私が行った唯一の変更は次のとおりです。
[a]チュートリアルファイルの最後に追加
model.save_weights('./weights.h5', overwrite=True)
[b]〜。/ keras / keras.jsonをに変更しました
{"floatx": "float32", "backend": "tensorflow", "epsilon": 1e-07}
モデルを正常に実行できます。
次に、トレーニング済みモデルに対して単一の画像をテストします。私のコード:
[... similar to tutorial file with model being created and compiled...]
...
model = Sequential()
...
model.compile()
model.load_weights('./ddx_weights.h5')
img = cv2.imread('car.jpeg', -1) # this is is a 32x32 RGB image
img = np.array(img)
y_pred = model.predict_classes(img, 1)
print(y_pred)
このエラーが発生します:
ValueError: Cannot feed value of shape (1, 32, 3) for Tensor 'convolution2d_input_1:0', which has shape '(?, 3, 32, 32)'
テストする単一の画像の入力データを再形成する正しい方法は何ですか?
に追加していません。"image_dim_ordering": "tf"
./keras/keras.json
入力画像の形状を変更[?, 3, 32, 32]
し?
て、バッチサイズがどこにあるかの形状にする必要があります。あなたの場合、1つの画像があるので、バッチサイズは1なので、次のことができます。
img = np.array(img)
img = img.reshape((1, 3, 32, 32))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加