我希望我做对了(第一篇文章)。
我试图使用tensorflow.keras从此处对数据进行分类。我知道将参数传递到tf.keras.Sequential.fit()时,输入形状,输入数据形状和目标形状很重要
我收到的消息是:
ValueError:检查输入时出错:预期density_159_input具有2维,但数组的形状为()
所以这是我所做的:
def loadDataset(file_name):
data = pd.read_csv("data/" + file_name)
# print(data.head(10))
data = data.to_numpy()
random.seed(20)
X = data[:, 0:8]
y = data[:, -1]
X = np.asarray(X).reshape(X.shape[0], X.shape[1])
X = tf.keras.utils.normalize(X, axis=0)
y = np.asarray(y).reshape(y.shape[0], 1)
return X, y
title = "datasets_228_482_diabetes.csv"
X, y = loadDataset(title)
print(X.shape)
print(y.shape)
(768,8)(768,1)
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam
model = Sequential()
model.add(Dense(4, activation = "relu", input_shape=(8,)))
model.add(Dense(4, activation = "relu"))
model.add(Dense(1, activation = "sigmoid"))
model.compile(optimizer = "Adam",
loss = "binary_crossentropy",
metrics=["accuracy"])
model.fit(X, y, batch_size = 16, epochs = 1, validation_data = 0.1)
我尝试制作形状X(768,8,1)和y(768,1,1),以防万一,这是问题所在,但是错误说它期望2维,但得到3维。这对我来说很有意义。我只是不明白上面的错误,即当X的形状为(768,8)时,输入数据X没有任何形状。
任何帮助将不胜感激!干杯
我要说的是,错误validation_data
应该来自于X
某些形状的数据(..., 8)
。由于您正在通过0.1
密集层,因此无法理解您给他的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句