学習済モデルを読み込んで、画像の判別をしようとすると、エラーがでます。
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
これはどのように対処すればよいでしょうか?
# 画像の読み込み(50×50にリサイズ) img = load_img("dog2/[www.google.com][227].jpg", target_size=(50, 50)) img = img_to_array(img) # 画像データの正規化 img = img.astype('float32')/255.0 img = np.array([img]) # 4次元配列にしないと入力できない print(img.shape) # モデルの読み込み model = model_from_json(open('dokugyo_mlp_weights', 'r').read()) # 重みの読み込み model.load_weights('dokugyo_mlp_weights.h5') # コンパイル model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 10枚(0~9番目)のテスト画像を入力し、予測結果を出力 y_pred = model.predict(img) # 出力をクラスベクトルから整数値に変換 y_pred = np.argmax(y_pred, axis=1) # 予測結果の表示 print('予測結果:', folder[int(y_pred)]) #
(1, 50, 50, 3) --------------------------------------------------------------------------- JSONDecodeError Traceback (most recent call last) <ipython-input-74-a0bd6a96ebe0> in <module> 27 28 # モデルの読み込み ---> 29 model = model_from_json(open('dokugyo_mlp_weights', 'r').read()) 30 31 # 重みの読み込み ~\Anaconda3\lib\site-packages\keras\engine\saving.py in model_from_json(json_string, custom_objects) 488 A Keras model instance (uncompiled). 489 """ --> 490 config = json.loads(json_string) 491 from ..layers import deserialize 492 return deserialize(config, custom_objects=custom_objects) ~\Anaconda3\lib\json\__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 346 parse_int is None and parse_float is None and 347 parse_constant is None and object_pairs_hook is None and not kw): --> 348 return _default_decoder.decode(s) 349 if cls is None: 350 cls = JSONDecoder ~\Anaconda3\lib\json\decoder.py in decode(self, s, _w) 335 336 """ --> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 338 end = _w(s, end).end() 339 if end != len(s): ~\Anaconda3\lib\json\decoder.py in raw_decode(self, s, idx) 353 obj, end = self.scan_once(s, idx) 354 except StopIteration as err: --> 355 raise JSONDecodeError("Expecting value", s, err.value) from None 356 return obj, end JSONDecodeError: Expecting value: line 1 column 1 (char 0)
ファイルが破損等していませんか? 対象のファイルをテキストエディタで開いて確認されてはどうでしょうか?
ご連絡ありがとうございます。
エディタで開いて確認しましたところ、特に破損はしていませんでした。
やはり、コーディング方法が間違っているのでしょうか?
そもそもdokugyo_mlp_weightsはJSONファイルなんですか?
そのファイルの1文字目は「{」ですか?
はい、「{」で始まっています。
よろしくお願いいたします。
エラーメッセージ(JSONDecodeError: Expecting value: line 1 column 1 (char 0))を見ると1文字目が悪さをしているようなのですが。。
ちなみにモデルの保存はどのようなコードで実行されましたか?
ありがとうございます。
モデルの保存は以下のようにしています。
よろしくお願いいたします。
model_json_str = model.to_json()
open('dokugyo_mlp_weights.json', 'w').write(model_json_str)
model.save_weights('dokugyo_mlp_weights.h5');
コードに問題はなさそうですね。うーん、エラーの原因は分かりませんねぇ。
もう少し自分でも調べてみます。
ありがとうございました。
あなたの回答
tips
プレビュー