【发布时间】:2021-11-20 16:19:20
【问题描述】:
我目前面临无法解决的 Tensorflow 库问题。我在 stackoverflow 上找到的所有解决方案都没有帮助我理解真正的问题。
def build_model(dim_data, n_neurons):
model = tf.keras.Sequential(name="Reseau_de_neurones")
model.add(layers.Dense(units = n_neurons, input_shape=(3, 1), bias_initializer="glorot_uniform"))
model.add(layers.ReLU())
model.add(layers.Dense(units = n_neurons, input_shape=(dim_data,), bias_initializer="glorot_uniform"))
model.add(layers.ReLU())
model.add(layers.Dense(units = n_neurons, input_shape=(dim_data,), bias_initializer="glorot_uniform"))
model.add(layers.ReLU())
model.add(layers.Dense(units = n_neurons, input_shape=(dim_data,), bias_initializer="glorot_uniform"))
model.add(layers.ReLU())
model.add(layers.Dense(units = dim_data - 1, bias_initializer="glorot_uniform"))
return model
然后我构建我的神经网络:
model = build_model(dim_data=3, n_neurons=10)
然后我定义一个训练步骤:
def train_step(model):
with tf.GradientTape() as tape:
pos = [0,0]
controle_actuel = model(np.array([0,pos[0],pos[1]]))
loss_value = loss
gradients = tape.gradient(loss_value, model.trainable_variables)
return loss_value, gradients
当我尝试这个功能时,我得到了这个错误
input 0 of layer "dense_37" is incompatible with the layer: expected min_ndim=2, found ndim=1. Full shape received: (3,)
你能帮帮我吗?
【问题讨论】:
-
首先,中间层不需要指定输入形状。无论如何,您的输入形状为
(3,),但您已将第一层输入指定为(3,1)。尝试更改第一层输入形状,例如input_shape=(3,)。
标签: python tensorflow layer