首页 > 解决方案 > 多变量/特征 Tensorflow

问题描述

我想使用多层 keras 对人的身高进行分类,如果身高超过 170 应该返回 1 而低于 170 则返回 0

data_input = [[0,165], [0,166], [0,167], [0,172], [0,173]]
data_output = [0,0,0,1,1]
model = keras.Sequential([
  keras.layers.Flatten(input_shape=(1,)),
  keras.layers.Dense(2, activation=tf.nn.relu),
  keras.layers.Dense(2, activation=tf.nn.softmax)
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(data_input, data_output, epochs=5)
predictions = model.predict([0,184])
print(predictions)

但它给了我错误“ValueError:输入数组应该具有与目标数组相同数量的样本。找到 2 个输入样本和 5 个目标样本。”

标签: pythontensorflowmachine-learningkeras

解决方案


你应该使用 Numpy 来包装你的输入

data_input = np.array(data_input).reshape(5 ,2)
data_output = np.array(data_output).reshape(5)

顺便说一下,为什么你使用 ML 来计算一个简单的条件分类问题


推荐阅读