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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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