Tensorflow: Tensors上的矩阵大小不兼容错误

我正在尝试使用Tensorflow对单变量数值数据集进行二元分类。我的数据集包含6个特征/变量,包括标签,总共有大约90个实例。以下是我的数据预览:

sex,age,Time,Number_of_Warts,Type,Area,Result_of_Treatment1,35,12,5,1,100,01,29,7,5,1,96,11,50,8,1,3,132,01,32,11.75,7,3,750,01,67,9.25,1,1,42,0

我使用sklearn的train_test_split函数来分割数据,如下所示:

X_train, X_test, y_train, y_test = train_test_split(data, y, test_size=0.33, random_state=42)

然后我使用以下代码将数据转换为Tensors:

X_train=tf.convert_to_tensor(X_train)X_test = tf.convert_to_tensor(X_test)y_train=tf.convert_to_tensor(y_train)y_test = tf.convert_to_tensor(y_test)

之后,我开始构建一个简单的顺序模型。

from keras import modelsfrom keras import layersfrom keras import modelsfrom keras import layersmodel = models.Sequential()model.add(layers.Dense(16, activation='relu', input_shape=(60,)))model.add(layers.Dense(16, activation='relu'))model.add(layers.Dense(1, activation='sigmoid'))model.compile(optimizer=optimizers.RMSprop(lr=0.001),          loss='binary_crossentropy',          metrics=['accuracy'])

当我调用fit函数时出现了错误

 history = model.fit(X_train,y_train,epochs=10,steps_per_epoch=200) InvalidArgumentError: Matrix size-incompatible: In[0]: [60,6], In[1]: [60,16] [[{{node dense_43/MatMul}} = MatMul[T=DT_FLOAT, _class=["loc:@training_8/RMSprop/gradients/dense_43/MatMul_grad/MatMul_1"], transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:CPU:0"](_identity_dense_43_input_0, dense_43/kernel/read)]]

回答:

我认为应该这样做

model.add(layers.Dense(16, activation='relu', input_shape=(6,)))

你应该参考列而不是行

Related Posts

关于k折交叉验证的直观问题

我在使用交叉验证检查预测能力时遇到了一些直观问题,我认…

调整numpy数组大小以使用sklearn的train_test_split函数?

我正在尝试使用sklearn中的test_train_…

如何转换二维张量和索引张量以便用于torch.nn.utils.rnn.pack_sequence

我有一组序列,格式如下: sequences = to…

模型预测值的含义是什么?

我在网上找到一个数字识别器的CNN模型并进行了训练,当…

锯齿张量作为LSTM的输入

了解锯齿张量以及如何在TensorFlow中使用它们。…

如何告诉SciKit的LinearRegression模型预测值不能小于零?

我有以下代码,尝试根据非价格基础特征来估值股票。 pr…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注