————————————————————————— InvalidArgumentError Traceback (most recent call last) Cell In[194], line 35 32 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’]) 34 # モデルのトレーニング —> 35 history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_data=(X_test_scaled, y_test)) 37 # テストデータでの予測と評価 38 y_pred = model.predict_classes(X_test_scaled) 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: … 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 5 which is outside the valid range of [0, 1). Label values: 2 2 1 0 0 2 2 0 1 1 4 1 0 0 2 2 3 0 5 0 0 4 3 4 0 1 1 3 0 1 3 2 [[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_81794]

エラーメッセージから、sparse_categorical_crossentropyの活性化関数において、ラベルの値が有効な範囲外であることが示されています。これは、分類タスクにおいて、ラベルの値が予測されるクラスのインデックスとして解釈されるためです。しかし、提供されたデータではラベルの値が有効な範囲外になっているようです。

これを修正するためには、ラベルのエンコーディング方法を確認する必要があります。現在のコードでは、LabelEncoderを使用してカテゴリカルなラベルをエンコードしていますが、これによってラベルの値が期待される範囲外に変換されている可能性があります。

提供されたデータセットにおいて、目的変数であるサイズのラベル値がどのような範囲にあるかを確認し、必要に応じてエンコーディング手法を修正してください。目的変数のラベル値が正しい範囲に収まるようにすることで、問題が解決される可能性があります。

未分類

Posted by ぼっち