Я пытаюсь построить очень простую модель классификации нескольких классов. Я использую следующий код для создания, компиляции и обучения модели:
model = tf.keras.Sequential([
tf.keras.layers.Dense(171, activation='softmax')
])
model.compile(
optimizer = 'adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
history = model.fit(loc_array, label_array, epochs=500, verbose=False)
print('finished')
Я использую следующий код для создания loc_array и label_array
loc_array = df.iloc[:, 1:2]
label_array = df.iloc[:, 3]
loc_array представляет значения x и является 1 столбец и 1344 строки label_array - это значение y, равное 1 столбцу и 1344 строкам
В массиве меток есть 171 отдельный класс (как введено в плотный слой модели), однако эти значения принимают значение 6 di git целочисленные значения, например, первый класс - 100358.
Когда я запускаю шаг модели поезда, я получаю следующую ошибку:
InvalidArgumentError Traceback (most recent call last)
<ipython-input-48-5fd9efae2d96> in <module>()
----> 1 history = model.fit(loc_array, label_array, epochs=500, verbose=False)
2 print('finished')
8 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
58 ctx.ensure_initialized()
59 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 60 inputs, attrs, num_outputs)
61 except core._NotOkStatusException as e:
62 if name is not None:
InvalidArgumentError: Received a label value of 200837 which is outside the valid range of [0, 171). Label values: 121695 105012 126480 125374 122189 102036 110191 104270 129375 108730 105839 122189 105011 200837 128990 102128 129850 129731 105839 104020 129731 129375 122189 126603 105011 105030 126603 126603 126603 102490 126480 121695
[[node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits (defined at <ipython-input-48-5fd9efae2d96>:1) ]] [Op:__inference_train_function_1411]
Function call stack:
train_function
Кажется, что мне нужно преобразовать мои 6 ди git, 171 класс к значениям от 0 до 171? Если я это сделаю, код работает. Но есть ли способ запустить код без необходимости конвертировать эти значения, поскольку это приводит к необходимости преобразовывать значения от 0 до 171 обратно в фактические значения, когда я применяю модель.