这与skflow 回归预测多个值的问题非常相似。然而,更高版本的 TensorFlow 似乎已经过时了这个问题的答案。
我希望能够在 TensorFlow Learn 回归神经网络 ( DNNRegressor ) 中拥有多个输出神经元。我升级了引用问题中的代码以解决 TensorFlow 中的重大更改,但仍然出现错误。
import numpy as np
import tensorflow.contrib.learn as skflow
import tensorflow as tf
from sklearn.metrics import mean_squared_error
# Create random dataset.
rng = np.random.RandomState(1)
X = np.sort(200 * rng.rand(100, 1) - 100, axis=0)
y = np.array([np.pi * np.sin(X).ravel(), np.pi * np.cos(X).ravel()]).T
# Fit regression DNN model.
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=X.shape[0])]
regressor = skflow.DNNRegressor(hidden_units=[5, 5],feature_columns=feature_columns)
regressor.fit(X, y)
score = mean_squared_error(regressor.predict(X), y)
print("Mean Squared Error: {0:f}".format(score))
但这会导致:
ValueError: Shapes (?, 1) and (?, 2) are incompatible
我没有看到任何有关破坏性更改的发行说明表明多个输出的方法已更改。还有另一种方法可以做到这一点吗?