我正在使用keras构建一个预测糖尿病的神经网络。然而,我遇到了一个ValueError:当将符号张量提供给模型时,我们希望张量具有静态批量大小。
我试着改变输入形状,但还是卡住了。
num_classes = 2
from keras.layers import Input, Dense
from keras.models import Model
# This returns a tensor
inputs = Input(shape=(784,))
# a layer instance is callable on a tensor, and returns a tensor
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='sigmoid')(x)
# This creates a model that includes
# the Input layer and three Dense layers
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(x,y) # starts training在运行ValueError之后:当将符号张量提供给模型时,我们希望张量具有静态批量大小。
发布于 2019-01-17 09:50:17
由于这些行,x是一个Layer对象
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)模型应该基于实际数据进行拟合,但您需要传入一个Layer对象:
model.fit(x,y) # starts training简单地说,您的x是一个Layer对象,它是一个符号张量,keras试图将其视为数据张量,但失败了。
要解决这个问题,只需确保您传递的x确实是您的x训练数据。
发布于 2019-06-02 23:01:34
因为当您输入模型(x,y)时,x不是训练数据,所以我将您的代码修复为:
model.fit(x_train,y_train) # starts traininghttps://stackoverflow.com/questions/54227779
复制相似问题