我何时需要在TensorFlow中展平功能?

时间:2019-01-20 21:27:56

标签: python tensorflow

我有一群健康和患病的患者。患者的数据集包含他的红细胞和白细胞水平。通过这种简单的经验,我想预测患者是否生病。

我试图训练一个模型,该模型具有两个分别由16个中子层和1个中子层组成的模型,带有和不带有平坦层都可以测试,但是它不起作用。我在展平层上收到错误“ ValueError:检查输入时出错:期望的flatten_input具有3个维,但获得形状为(200,2)的数组”,而没有展平层时出现以下错误“ ValueError:检查时出错”输入:期望flatten_input具有3个维度,但具有形状为(200,2)的数组”,我不明白为什么。

train_data_set_sick = np.random.randn(size, 2) + np.array([-2, -2])
train_data_set_healthy = np.random.randn(size, 2) + np.array([2, 2])

test_data_set_sick = np.random.randn(size, 2) + np.array([-2, -2])
test_data_set_healthy = np.random.randn(size, 2) + np.array([2, 2])

#print(data_set_sick, data_set_healthy)

plt.plot(train_data_set_sick[:, 0], train_data_set_sick[:, 1], 'ro')
plt.plot(train_data_set_healthy[:, 0], train_data_set_healthy[:, 1],'bo')
plt.show()

train_data_set = np.concatenate((train_data_set_sick, train_data_set_healthy))
train_data_label = np.concatenate((np.full(shape=size, fill_value=0,  dtype=np.int), np.full(shape=size, fill_value=1, dtype=np.int)))

test_data_set = np.concatenate((test_data_set_sick,   test_data_set_healthy))
test_data_label = np.concatenate((np.full(shape=size, fill_value=0, dtype=np.int), np.full(shape=size, fill_value=1, dtype=np.int)))

#print(train_data_set, train_data_label)


model = keras.Sequential()
#model.add(keras.layers.Flatten(input_shape=(size, 2)))
model.add(keras.layers.Dense(16, activation="relu"))
model.add(keras.layers.Dense(1, activation="sigmoid"))

model.compile(optimizer=tf.train.AdamOptimizer(),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_data_set, train_data_label, epochs=5)

我希望对患者的健康状况有一个二元的预测。

0 个答案:

没有答案