Ошибка индекса: индекс списка выходит за пределы диапазона при использовании model.fit

#python #pandas #tensorflow

Вопрос:

Когда я запускаю код, модель.fit в конечном итоге возвращает сообщение об ошибке: IndexError: индекс списка вне диапазона.

Набор данных: https://drive.google.com/file/d/11_dvun93KNdK9WrMtNzSB5HDBCgtq8qG/view?usp=sharing

 # importing and cleaning the data
import pandas as pd
import numpy as np
import pandas as pd
import re
import nltk
import string
dataset = pd.read_csv("car_prices.csv")
dataset.pop('vin')
dataset.pop('mmr')
dataset.pop('year')
dataset.pop('odometer')
dataset.pop('condition')
dataset.pop('transmission')
dataset.pop('saledate')
dataset.pop('color')
dataset.pop('interior')
dataset = dataset.dropna(axis=0)
labels = dataset.iloc[:,0:5].values
labels = str(labels)
data = dataset.iloc[:,6].values
print(labels)

MODEL = "https://tfhub.dev/google/universal-sentence-encoder-large/5"
hub_layer = hub.KerasLayer(MODEL, output_shape=[512], input_shape=[1], trainable=True, dtype="string")
model = Sequential()
model.add(hub_layer)
model.add(Dense(1))

model.compile(loss='categorical_crossentropy', optimizer='SGD', metrics=['accuracy'])
data = np.array(np.array(data))
labels = np.array(np.array(labels))
model.fit(data, labels, epochs=2)
 

Комментарии:

1. Вы установили первые 5 столбцов в качестве меток, а 6-й столбец в качестве x?Почему? И как вы установили форму ввода как 1, а форму вывода как 512? Вы выполняете задачу регрессии, и CategoricalCrossentropy потеря не имеет смысла. используйте вместо loss=mse этого . Тоже metrics=['accuracy'] не имеет смысла.

2. Вы пробовали, как предлагалось выше?

3. Да, я это сделал. Это все равно не сработало. Хотя я не знаю, что добавить для показателей.