Epoch 1/5 2024-04-10 15:12:23.321185: W tensorflow/core/framework/op_kernel.cc:1828] OP_REQUIRES failed at sparse_xent_op.cc:103 : INVALID_ARGUMENT: Received a label value of 140 which is outside the valid range of [0, 6). Label values: 120 60 60 100 140 60 120 60 100 80 60 60 60 100 120 140 100 60 80 60 60 120 100 60 100 100 60 60 60 140 120 60 ————————————————————————— InvalidArgumentError Traceback (most recent call last) Cell In[215], line 34 31 model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’]) 33 # モデルのトレーニング —> 34 history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test)) 36 # テストデータでの予測と評価 37 loss, accuracy = model.evaluate(X_test_scaled, 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: … 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: 120 60 60 100 140 60 120 60 100 80 60 60 60 100 120 140 100 60 80 60 60 120 100 60 100 100 60 60 60 140 120 60 [[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_161988] Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings…
同様のエラーが発生しています。これは、ラベルの値がクラスの範囲外にあることを示しています。ラベルの値が [0, クラス数) の範囲に収まるように調整する必要があります。
ラベルの範囲外の値が含まれているため、次の手順を確認してください:
- データセット全体のラベルの一意な値を取得します。
- ラベルの一意な値を確認して、クラス数を特定します。
- ラベルの値がクラス数の範囲内にあるかどうかを確認します。範囲外の値があれば修正します。
次に、提供されたコードを以下のように修正します:
python
# データセット全体のラベルの一意な値を取得し、クラス数を特定する all_labels = np.unique(np.concatenate((y_train, y_test), axis=None)) num_classes = len(all_labels) # ラベルの値がクラス数の範囲内にあるかどうかを確認し、範囲外の値があれば修正する if np.any(y_train >= num_classes) or np.any(y_test >= num_classes): print("Warning: Label values are outside the range of classes.") print("Max label value:", max(np.max(y_train), np.max(y_test))) print("Min label value:", min(np.min(y_train), np.min(y_test))) # モデルの作成 model = Sequential([ Dense(64, activation='relu', input_shape=(X_train_scaled.shape[1],)), Dense(64, activation='relu'), Dense(num_classes, activation='softmax') ]) # モデルのコンパイル model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # モデルのトレーニング history = model.fit(X_train_scaled, y_train, epochs=5, batch_size=32, validation_data=(X_test_scaled, y_test)) # テストデータでの予測と評価 loss, accuracy = model.evaluate(X_test_scaled, y_test) print("Test Loss:", loss) print("Test Accuracy:", accuracy)
これにより、ラベルの値がクラス数の範囲内にあるかどうかが確認され、範囲外の値があれば警告が表示されます。

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