Мне трудно вводить данные в простую модель keras как для прогнозирования, так и для обучения. Я просмотрел соответствующие вопросы, но, потратив 6 часов, пытаясь разобраться в этом самостоятельно, я все еще борюсь с этим.
Импорт и сеть:
from tensorflow import keras
from tensorflow.keras.layers import Dense
from tensorflow import convert_to_tensor
from random import randint
model = keras.Sequential()
model.add(Dense(3, activation='relu', input_dim=5))
model.add(Dense(4, activation='sigmoid'))
model.add(Dense(2))
model.compile(loss=keras.losses.MeanSquaredError(),
optimizer='adam',
metrics=['MeanSquaredError'])
Попытка предсказать с сеть:
X = [4, 5, 2, 8, 9]
tensor = convert_to_tensor(X)
print(tensor.shape) # Prints (5, ) as expected
prediction = model.predict(tensor)
Возникает следующая ошибка:
ValueError: Ошибка при проверке ввода: ожидалось, что density_input будет иметь shape (5,), но получил массив с shape (1 ,)
Попытка обучить сеть:
states = [[7, 8, 3, 9, 7], [0, 7, 5, 0, 3], [2, 5, 8, 1, 10], [9, 9, 9, 8, 6]]
actions = [[1, 0], [0, 1], [0, 1], [0, 1]]
tensor_states = convert_to_tensor(states)
tensor_actions = convert_to_tensor(actions)
print(tensor_states.shape) # Prints (4, 5)
print(tensor_actions.shape) # Prints (4, 2)
model.fit(tensor_states, tensor_actions, verbose=0)
Возникает следующая ошибка:
ValueError: TypeError: len () unized объект
Без подробного = 0 Я получаю эту ошибку:
AttributeError: объект 'ProgbarLogger' не имеет атрибута 'log_values'
I я работаю в среде conda.
Я задал предыдущий вопрос по этому топи c, но я понял, что слишком усложнил проблему и не совсем понял, о чем я спрашивал. Теперь, когда я провел больше исследований, мне кажется, что я свел свою проблему к самой простой форме c. Я написал этот новый вопрос после рассмотрения этого мета-сообщения . Если мне нужно было только что отредактировать свой предыдущий вопрос, дайте мне знать.
РЕДАКТИРОВАТЬ - Устранение неполадок с помощью darcycp
Как указано в приведенном ниже ответе, я должен дать столбец для прогнозирования сети (с использованием двух наборов скобок). Однако это дает следующую ошибку:
ValueError: TypeError: len () объекта без размера
Затем не используется тензор (поскольку функция прогнозирования keras может напрямую принимать python lists) дает следующую ошибку:
ValueError: попытка преобразовать значение (4) с неподдерживаемым типом () в тензор
Что крайне необычно мне, так как я не импортировал numpy в эту программу.