首页 > 解决方案 > 使用 tensorflow 加载 pandas 数据帧并使用单个实例进行预测

问题描述

我无法理解构建张量流模型和预处理熊猫数据框。

我一直在关注这个文档: https ://www.tensorflow.org/tutorials/load_data/pandas_dataframe

第一个问题:

dataset = tf.data.Dataset.from_tensor_slices((df.values, target.values))
train_dataset = dataset.shuffle(len(df)).batch(1)

def get_compiled_model():
  model = tf.keras.Sequential([
    tf.keras.layers.Dense(10, activation='relu'),
    tf.keras.layers.Dense(10, activation='relu'),
    tf.keras.layers.Dense(1)
  ])

既然心脏病数据框有 13 个特征,为什么文档只启动了只有 10 个单元的第一个 Dense 层?为什么它看起来不像这样?

def get_compiled_model():
      model = tf.keras.Sequential([
        tf.keras.layers.InputLayer(input_shape=(13,),
        tf.keras.layers.Dense(10, activation='relu'),
        tf.keras.layers.Dense(10, activation='relu'),
        tf.keras.layers.Dense(1)
      ])

在文档中,它从 10 个单元的 Dense 层开始,但有 13 个功能,我不明白这是如何工作的。

最后一个问题:

在我训练了模型之后

model = get_compiled_model()
model.fit(train_dataset, epochs=15)

如何使用 model.predict() 对单个或多个训练数据实例/实例进行预测?

在将实例传递给 model.predict 方法之前,我是否必须先将实例转换为张量?IE

模型.预测(tensor(instance)

谢谢!

标签: pandasdataframetensorflowmachine-learningkeras

解决方案


创建模型有不同的方法。

  1. 模型.build()
  2. model.fit() 和一些数据
  3. input_shape在第一层中指定一个参数以进行自动构建。

即使你不指定输入层,当你拟合数据时,它也会自动调整输入大小。

应该为 model.predict() 提供类似于训练数据的输入。它可以是单个或多个(批量)输入。


推荐阅读