#python #tensorflow #prediction
#python #тензорный поток #предсказание
Вопрос:
Я пытаюсь предсказать базовую модель цен на акции. Вот мой код
data = pd.read_csv("total_cases.csv")
x = data["date"]
world_cases = data["Turkey"].fillna(0)
time = np.arange(len(world_cases), dtype="float32")
split_time = 200
x_train = time[:split_time]
x_valid = time[split_time:]
y_train = world_cases[:split_time]
y_valid = world_cases[split_time:]
window_size = 20
batch_size = 32
shuffle_buffer_size=1000
train_data = tf.data.Dataset.from_tensor_slices((x_train, y_train))
valid_data = tf.data.Dataset.from_tensor_slices((x_valid, y_valid))
model = Sequential()
model.add(LSTM(16, return_sequences=True))
model.add(LSTM(16))
model.add(Dense(16, activation='relu'))
model.compile(optimizer='adam', loss='mae', metrics=['mae'])
r = model.fit(train_data, validation_data=valid_data, epochs=100)
При запуске модели возникла ошибка
ValueError: Input 0 of layer sequential is incompatible with the layer: expected ndim=3, found ndim=0. Full shape received: []
Редактировать
Вот часть csv-файла, world_cases -Turkey- column
0 0.0
1 0.0
2 0.0
3 0.0
4 0.0
...
258 291162.0
259 292878.0
260 294620.0
261 296391.0
262 298039.0
Комментарии:
1. можете ли вы предоставить образец csv для запуска
2. Как я могу предоставить образец csv? Есть ли какой-либо способ добавить файл
Ответ №1:
Я воспроизвел вашу проблему.
import tensorflow as tf
inputs = tf.random.normal([])
lstm = tf.keras.layers.LSTM(4)
output = lstm(inputs)
print(output.shape)
Вывод
ValueError: Input 0 of layer lstm_1 is incompatible with the layer: expected ndim=3, found ndim=0. Full shape received: ()
Проблема с формой входных данных
Начиная с Tensorflow.Keras LSTM ожидает ввода формы 3D. Измените свой ввод в соответствии с этим
inputs: A 3D tensor with shape [batch, timesteps, feature]
model.add(LSTM(16,return_sequences=False)).
Рабочий пример кода
import tensorflow as tf
inputs = tf.random.normal([32, 10, 8])
lstm = tf.keras.layers.LSTM(4)
output = lstm(inputs)
print(output.shape)
Вывод
(32, 4)