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近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

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