————————————————————————— InvalidArgumentError Traceback (most recent call last) Cell In[227], line 48 45 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’]) 47 # モデルのトレーニング —> 48 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test)) 50 # モデルの評価 51 loss, accuracy = model.evaluate(X_test, y_test) File /home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs) 67 filtered_tb = _process_traceback_frames(e.__traceback__) 68 # To get the full stack trace, call: 69 # `tf.debugging.disable_traceback_filtering()` —> 70 raise e.with_traceback(filtered_tb) from None 71 finally: 72 del filtered_tb File /home/share/temp/venv/lib/python3.8/site-packages/tensorflow/python/eager/execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name) 51 try: 52 ctx.ensure_initialized() —> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name, 54 inputs, attrs, num_outputs) 55 except core._NotOkStatusException as e: 56 if name is not None: InvalidArgumentError: Graph execution error: Detected at node ‘sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’ defined at (most recent call last): File “/usr/lib/python3.8/runpy.py”, line 194, in _run_module_as_main return _run_code(code, main_globals, None, File “/usr/lib/python3.8/runpy.py”, line 87, in _run_code exec(code, run_globals) File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel_launcher.py”, line 18, in <module> app.launch_new_instance() File “/home/share/temp/venv/lib/python3.8/site-packages/traitlets/config/application.py”, line 1075, in launch_instance app.start() File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelapp.py”, line 739, in start self.io_loop.start() File “/home/share/temp/venv/lib/python3.8/site-packages/tornado/platform/asyncio.py”, line 205, in start self.asyncio_loop.run_forever() File “/usr/lib/python3.8/asyncio/base_events.py”, line 570, in run_forever self._run_once() File “/usr/lib/python3.8/asyncio/base_events.py”, line 1859, in _run_once handle._run() File “/usr/lib/python3.8/asyncio/events.py”, line 81, in _run self._context.run(self._callback, *self._args) File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py”, line 542, in dispatch_queue await self.process_one() File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py”, line 531, in process_one await dispatch(*args) File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py”, line 437, in dispatch_shell await result File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/ipkernel.py”, line 359, in execute_request await super().execute_request(stream, ident, parent) File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/kernelbase.py”, line 775, in execute_request reply_content = await reply_content File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/ipkernel.py”, line 446, in do_execute res = shell.run_cell( File “/home/share/temp/venv/lib/python3.8/site-packages/ipykernel/zmqshell.py”, line 549, in run_cell return super().run_cell(*args, **kwargs) File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py”, line 3009, in run_cell result = self._run_cell( File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py”, line 3064, in _run_cell result = runner(coro) File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/async_helpers.py”, line 129, in _pseudo_sync_runner coro.send(None) File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py”, line 3269, in run_cell_async has_raised = await self.run_ast_nodes(code_ast.body, cell_name, File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py”, line 3448, in run_ast_nodes if await self.run_code(code, result, async_=asy): File “/home/share/temp/venv/lib/python3.8/site-packages/IPython/core/interactiveshell.py”, line 3508, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File “/tmp/ipykernel_11711/3802099017.py”, line 48, in <module> model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test)) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/utils/traceback_utils.py”, line 65, in error_handler return fn(*args, **kwargs) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py”, line 1742, in fit tmp_logs = self.train_function(iterator) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py”, line 1338, in train_function return step_function(self, iterator) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py”, line 1322, in step_function outputs = model.distribute_strategy.run(run_step, args=(data,)) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py”, line 1303, in run_step outputs = model.train_step(data) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py”, line 1081, in train_step loss = self.compute_loss(x, y, y_pred, sample_weight) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/training.py”, line 1139, in compute_loss return self.compiled_loss( File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/engine/compile_utils.py”, line 265, in __call__ loss_value = loss_obj(y_t, y_p, sample_weight=sw) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/losses.py”, line 142, in __call__ losses = call_fn(y_true, y_pred) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/losses.py”, line 268, in call return ag_fn(y_true, y_pred, **self._fn_kwargs) File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/losses.py”, line 2354, in sparse_categorical_crossentropy return backend.sparse_categorical_crossentropy( File “/home/share/temp/venv/lib/python3.8/site-packages/keras/src/backend.py”, line 5762, in sparse_categorical_crossentropy res = tf.nn.sparse_softmax_cross_entropy_with_logits( Node: ‘sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits’ Received a label value of 140 which is outside the valid range of [0, 6). Label values: 60 60 60 60 80 60 100 60 60 100 100 60 120 60 120 100 80 140 80 140 140 60 120 120 100 60 80 100 100 60 60 140 [[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_164524]
エラーが発生しています。エラーメッセージを見ると、ラベルの値が有効な範囲外であることが原因のようです。具体的には、ラベルの値が [0, 6) の範囲外にあることが示されています。
これは、目的変数 y_train および y_test の値に問題がある可能性があります。目的変数の値がモデルに与えられる際に、期待されるラベルの範囲内に収まる必要があります。モデルの出力層であるソフトマックス関数が、カテゴリ数に基づいて予測を行うため、目的変数の値はそのカテゴリ数に対応した整数値でなければなりません。
データセット内の size カラムが正しいラベルにマッピングされているかを確認し、必要に応じて修正してください。データセット内のラベルが予想されるカテゴリ数に適合していることを確認し、ラベルのエンコード方法が適切であることを確認してください。エンコードされたラベルが 0 から始まるように、またはソフトマックス関数のカテゴリ数に適した方法でエンコードされていることを確認してください。
また、データセット内での目的変数の値が適切なラベルにマッピングされていることを確認するために、データを可視化したり、np.unique(y_train) を使用してユニークなラベルの数を確認したりすることが役立つかもしれません。

ディスカッション
コメント一覧
まだ、コメントがありません