【问题标题】:Loading a pandas dataframe with tensorflow and making predictions with a single instance使用 tensorflow 加载 pandas 数据帧并使用单个实例进行预测
【发布时间】:2020-08-20 22:05:44
【问题描述】:

我无法理解构建 tensorflow 模型和预处理 pandas Dataframe。

我一直在关注这个文档: 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 方法之前,我是否必须先将实例转换为张量? 即

model.predict(tensor(instance))

谢谢!

【问题讨论】:

    标签: pandas dataframe tensorflow machine-learning keras


    【解决方案1】:

    创建模型有不同的方法。

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2020-06-05
      相关资源
      最近更新 更多