简单递归神经网络输出的实际意义
Practical meaning of output in simple recurrent neural network
我正在尝试学习 RNN 模型。这是我构建的模型:
N = 3 # number of samples
T = 10 # length of a single sample
D = 3 # number of features
K = 2 # number of output units
X = np.random.randn(N, T, D)
# Make an RNN
M = 5 # number of hidden units
i = tf.keras.layers.Input(shape=(T, D))
x = tf.keras.layers.SimpleRNN(M)(i)
x = tf.keras.layers.Dense(K)(x)
model = tf.keras.Model(i, x)
Yhat = model.predict(X[0].reshape(1, -1, D)) # output: array([[-0.67114466, -0.65754676]], dtype=float32)
我不明白Yhat
的意思。这里我将 X 视为顺序数据:
[data_point0...data_pointT], [data_point0...data_pointT], [data_point0...data_pointT]
每个数据点都有 D=3
特征。
这里Yhat.shape==(1, 2)
.
2 不等于 D
,这是一些特征。我想,model.predict()
不会对下一个数据点做出预测。如果model.predict()
对下一个数据点做预测,结果的shape应该是(1, D)
.
那么Yhat
的实际意义是什么?
你要注意型号。
在 RNN
层之后,您使用了 Dense
层,其中输出维度为 2!
所以你通过 运行 和 model.predict()
得到的输出大小是好的。
如果您希望它有其他维度改变 Dense
层的输出大小。从 x = tf.keras.layers.Dense(K)(x)
到 x = tf.keras.layers.Dense(D)(x)
模型是否 does/doesn 无法正确预测的问题取决于多个问题,例如训练数据、hyper-parameter 等
我正在尝试学习 RNN 模型。这是我构建的模型:
N = 3 # number of samples
T = 10 # length of a single sample
D = 3 # number of features
K = 2 # number of output units
X = np.random.randn(N, T, D)
# Make an RNN
M = 5 # number of hidden units
i = tf.keras.layers.Input(shape=(T, D))
x = tf.keras.layers.SimpleRNN(M)(i)
x = tf.keras.layers.Dense(K)(x)
model = tf.keras.Model(i, x)
Yhat = model.predict(X[0].reshape(1, -1, D)) # output: array([[-0.67114466, -0.65754676]], dtype=float32)
我不明白Yhat
的意思。这里我将 X 视为顺序数据:
[data_point0...data_pointT], [data_point0...data_pointT], [data_point0...data_pointT]
每个数据点都有 D=3
特征。
这里Yhat.shape==(1, 2)
.
2 不等于 D
,这是一些特征。我想,model.predict()
不会对下一个数据点做出预测。如果model.predict()
对下一个数据点做预测,结果的shape应该是(1, D)
.
那么Yhat
的实际意义是什么?
你要注意型号。
在 RNN
层之后,您使用了 Dense
层,其中输出维度为 2!
所以你通过 运行 和 model.predict()
得到的输出大小是好的。
如果您希望它有其他维度改变 Dense
层的输出大小。从 x = tf.keras.layers.Dense(K)(x)
到 x = tf.keras.layers.Dense(D)(x)
模型是否 does/doesn 无法正确预测的问题取决于多个问题,例如训练数据、hyper-parameter 等