【发布时间】:2021-08-07 13:14:28
【问题描述】:
我正在尝试创建一个模型,该模型采用 4 个元素的 python 列表并返回两个值作为预测。这是我的代码:
class DQNagent:
def create_model(self):
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(16, activation ='relu',input_shape =(4,1)))
model.add(tf.keras.layers.Dense(32, activation ='relu'))
model.add(tf.keras.layers.Dense(2, activation="linear"))
model.compile(loss="mse", optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),metrics=['accuracy'])
return model
def model_summary(self,model):
return model.summary()
def predict(self, state):
return model.predict(state)
state = [ 0.02495595 0.04527366 -0.002845 0.04326009]
agent = DQNagent()
model = agent.create_model()
action = model.predict(state)
print(action)
此代码引发错误:
ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 4 but received input with shape (None, 1)
我已经给了input_shape=(4,1)。这是我给input_shape 的错误方式吗?
我该如何解决这个错误?
当我给出 input_shape = (1,4) 时,它仍然会抛出同样的错误。为什么会这样?我只有一个 state 示例来提供它,我只想要两个数字作为输出。
有可能吗?
请帮忙!
谢谢!
【问题讨论】:
标签: python-3.x tensorflow machine-learning keras keras-layer