我正在尝试使用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,)))
你应该参考列而不是行