前提・実現したいこと
エディターにVScode 言語にpython3.6.13を使って人工知能のモデルを作成しました。
モデルを学習をするところまでできたのですが、model.save()を使って保存したところうまく保存ができません。
解決法を教えてください。
発生している問題・エラーメッセージ
call()を呼び出したときのエラー --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-9-0b9011992b43> in <module> ----> 1 call() <ipython-input-7-b496908ddcf6> in call() 3 image = Image.open(name) 4 image = image.resize((64,64)) ----> 5 model = load_model("model.h5") 6 np_image = np.array(image) 7 np_image = np_image / 255 ~\anaconda3\envs\karas-env\lib\site-packages\keras\engine\saving.py in load_wrapper(*args, **kwargs) 490 os.remove(tmp_filepath) 491 return res --> 492 return load_function(*args, **kwargs) 493 494 return load_wrapper ~\anaconda3\envs\karas-env\lib\site-packages\keras\engine\saving.py in load_model(filepath, custom_objects, compile) 582 if H5Dict.is_supported_type(filepath): 583 with H5Dict(filepath, mode='r') as h5dict: --> 584 model = _deserialize_model(h5dict, custom_objects, compile) 585 elif hasattr(filepath, 'write') and callable(filepath.write): 586 def load_function(h5file): ~\anaconda3\envs\karas-env\lib\site-packages\keras\engine\saving.py in _deserialize_model(h5dict, custom_objects, compile) 271 if model_config is None: 272 raise ValueError('No model found in config.') --> 273 model_config = json.loads(model_config.decode('utf-8')) 274 model = model_from_config(model_config, custom_objects=custom_objects) 275 model_weights_group = h5dict['model_weights'] AttributeError: 'str' object has no attribute 'decode'
該当のソースコード
python
1def main(): 2 model = Sequential() 3 model.add(Conv2D(64,(3,3),input_shape=(64,64,3))) 4 model.add(Activation("relu")) 5 model.add(MaxPooling2D(pool_size=(2,2))) 6 model.add(Conv2D(64,(3,3))) 7 model.add(Activation("relu")) 8 model.add(MaxPooling2D(pool_size=(2,2))) 9 model.add(Flatten()) 10 model.add(Dense(256)) 11 model.add(Activation("relu")) 12 model.add(Dense(2)) 13 model.add(Activation("softmax")) 14 model.compile(optimizer="adam",loss="categorical_crossentropy",metrics=["accuracy"]) 15 train_datagen = ImageDataGenerator(rescale=1./255) 16 test_datagen = ImageDataGenerator(rescale=1./255) 17 train_generator = train_datagen.flow_from_directory("data/train",target_size=(64,64),batch_size=10) 18 validation_generator = test_datagen.flow_from_directory("data/validation",target_size=(64,64),batch_size=10) 19 model.fit_generator(train_generator,epochs=20,steps_per_epoch=10,validation_data=validation_generator,validation_steps=10) 20 model.save("model.h5")
python
1def call(): 2 name = "data/validation/dog/images3.jpg" 3 image = Image.open(name) 4 image = image.resize((64,64)) 5 model = load_model("model.h5") 6 np_image = np.array(image) 7 np_image = np_image / 255 8 np_image = np_image[np.newaxis, :, :, :] 9 result = model.predict(np_image) 10 if result[0][0] > result[0][1]: 11 print("犬") 12 else: 13 print("猫")
試したこと
model.h5が文字化けしていたのでJISやUTF-16に変更してみましたが改善されませんでした。
補足情報(FW/ツールのバージョンなど)
Windows10
Python3.6.13
Keras2.3.1
VSCode Jupyternotebook
あなたの回答
tips
プレビュー