karaage0703 / karaage-ai-book

MIT License
104 stars 14 forks source link

p.56 value error と出てしまいます #30

Closed drimdoedaggerdack closed 3 years ago

drimdoedaggerdack commented 3 years ago

ページ数

p.61 AIモデルの学習

内容

コードを実行すると、以下のようなエラーが出てしまいます。 %%time history = model.fit(train_data, epochs=EPOCHS, validation_data=validation_data, verbose=1) を実行すると、以下のエラー

Epoch 1/20

ValueError Traceback (most recent call last)

in () ----> 1 get_ipython().run_cell_magic('time', '', 'history = model.fit(train_data, epochs=EPOCHS, validation_data=validation_data, verbose=1)') 12 frames in time(self, line, cell, local_ns) in () /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs) 992 except Exception as e: # pylint:disable=broad-except 993 if hasattr(e, "ag_error_metadata"): --> 994 raise e.ag_error_metadata.to_exception(e) 995 else: 996 raise ValueError: in user code: /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:853 train_function * return step_function(self, iterator) /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:842 step_function ** outputs = model.distribute_strategy.run(run_step, args=(data,)) /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:1286 run return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:2849 call_for_each_replica return self._call_for_each_replica(fn, args, kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:3632 _call_for_each_replica return fn(*args, **kwargs) /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:835 run_step ** outputs = model.train_step(data) /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:789 train_step y, y_pred, sample_weight, regularization_losses=self.losses) /usr/local/lib/python3.7/dist-packages/keras/engine/compile_utils.py:184 __call__ self.build(y_pred) /usr/local/lib/python3.7/dist-packages/keras/engine/compile_utils.py:133 build self._losses = tf.nest.map_structure(self._get_loss_object, self._losses) /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/nest.py:869 map_structure structure[0], [func(*x) for x in entries], /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/nest.py:869 structure[0], [func(*x) for x in entries], /usr/local/lib/python3.7/dist-packages/keras/engine/compile_utils.py:273 _get_loss_object loss = losses_mod.get(loss) /usr/local/lib/python3.7/dist-packages/keras/losses.py:2136 get return deserialize(identifier) /usr/local/lib/python3.7/dist-packages/keras/losses.py:2095 deserialize printable_module_name='loss function') /usr/local/lib/python3.7/dist-packages/keras/utils/generic_utils.py:709 deserialize_keras_object .format(printable_module_name, object_name)) ValueError: Unknown loss function: categorial_crossentropy. Please ensure this object is passed to the `custom_objects` argument. See https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object for details. **コメント** いつも楽しく勉強させていただいています。上記のエラーについて、自己解決できず、こちらに投稿させていただきました。大変恐縮ですが、ご教授いただければと思います。
karaage0703 commented 3 years ago

@drimdoedaggerdack さん 質問ありがとうございます。私の方でも確認してみましたが、問題なく学習できました。

一度、Google Colabで以下のノートをそのまま一通り実行してみていただけないでしょうか? 02_karaage_ai_book_image_classification_tf2_x.ipynb

一通り学習できることを確認した後、自分で1から打ち直していき、うまくいったときの結果と1つずつ見比べていくと、どこで間違えたか確認できると思います。 地道で、時間がかかりますが、それが一番の近道と思います。

drimdoedaggerdack commented 3 years ago

おはようございます。早速のお返事ありがとうございます。 先生のおっしゃるように、一度そのまま一通り実行してみました。 そのあと学習できることを確認したので自分で打ち直してみました。 2つ前のセルで間違いがあったようです。そのセルを実行した時点では特に問題はなかったのですが… 貴重なお時間をさいてお答えいただきありがとうございました。 引き続き勉強させていただきます!