我正在尝试学习带有2D标签的DDNRegressor:
estimator = tf.estimator.DNNRegressor(
hidden_units=[10,10],
feature_columns=feature_columns,
label_dimension=2
)
def train_input_fn():
return tf.estimator.inputs.pandas_input_fn(
x = train_df,
y = train_df[["coord_x", "coord_y"]],
batch_size=100,
num_epochs=1000,
shuffle=True
)
estimator.train(input_fn=train_input_fn())
但我遇到了错误:
TypeError:无法将类型
的对象转换为Tensor。内容:{'coord_x': ,'coord_y':
将2D标签从Pandas DataFrame传递到tf.estimator.inputs.pandas_input_fn
的正确方法是什么?
谢谢
答案 0 :(得分:0)
我找到了一种解决方法,但是我对此并不完全满意。仍在寻找使用tf.estimator.inputs.pandas_input_fn
的正确方法。
def train_input_fn():
features = {
"rssi_x1": train_df["rssi_x1"].values.tolist(),
"rssi_x2": train_df["rssi_x2"].values.tolist(),
"rssi_y1": train_df["rssi_y1"].values.tolist(),
"rssi_y2": train_df["rssi_y2"].values.tolist()
}
labels = train_df[["coord_x", "coord_y"]].values.tolist()
dataset = tf.data.Dataset.from_tensor_slices((dict(features), labels))
dataset = dataset.shuffle(1000).repeat().batch(100)
return dataset
estimator.train(input_fn=train_input_fn, steps=90000)