在TensorFlow中训练LinearRegression模型后预测单个值

时间:2020-01-22 06:44:26

标签: python-3.x tensorflow machine-learning

我一直在研究一个简单的张量流线性回归模型,该模型使用有关不同深度温度的数据对其进行训练。这是工作代码。

mine_dataframe = pd.read_csv("/home/sskottha/iron_temp_data.csv", sep=",")
mine_dataframe = mine_dataframe.reindex(np.random.permutation(mine_dataframe.index))
print(mine_dataframe.describe())
my_feature = mine_dataframe[["Depth"]]

feature_columns = [tf.feature_column.numeric_column('Depth')]

targets = mine_dataframe["Temperature"]

my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.000001)
my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)

linear_regressor = tf.estimator.LinearRegressor(feature_columns=feature_columns, optimizer=my_optimizer)

def my_input_fn(features, targets, batch_size=1, shuffle=True, num_epochs=None):
   features = {key:np.array(value) for key,value in dict(features).items()}
   ds = Dataset.from_tensor_slices((features,targets))
   ds = ds.batch(batch_size).repeat(num_epochs)

   if shuffle:
      ds = ds.shuffle(buffer_size=100)

   features, labels = ds.make_one_shot_iterator().get_next()
   return features, labels


_ = linear_regressor.train(input_fn = lambda:my_input_fn(my_feature, targets), steps=50000)

prediction_input_fn = lambda: my_input_fn(my_feature, targets, num_epochs=1, shuffle=False)
predictions = linear_regressor.predict(input_fn=prediction_input_fn)
predictions = np.array([item['predictions'][0] for item in predictions])

此代码有效,我也可以绘制图形。我现在仍然想要实现的是输入一个深度值作为输入,将其输入模型并检索预测的温度值。我不确定如何实现。我在Google上搜索了一下,但没有找到任何有效的方法。

0 个答案:

没有答案