我的输入数据包括48或52(此数字是4的倍数)和3个输出。 对于输入类似如下: 1.34772 1.35783 1.35937 1.35158 1.33009 并输出-1,108,128 第一个输出始终为-1或1,第二个,第三个输出整数在80,140之间。 我喜欢训练NN模型,根据此输入和输出计算所有权重,偏差....... Sample Input and output data AX,AY和AZ是我的输出。是否可以使用Tensorflow同时为3个输出训练此类数据? 的问候,
答案 0 :(得分:1)
您可以尝试的最简单方法是从深度学习模型输出3个值。我在下面给出了一个示例代码,其中包含必要的注释。
import tensorflow as tf
N_OUTPUTS = 3
N_INPUTS = 48
N_HIDDEN_UNITS = # Define here
N_EPOCHS = # define here
input = tf.placeholder(tf.float32, shape=[None, N_INPUTS], name='input') # input here
outputs = tf.placeholder(tf.float32, shape=[None, N_OUTPUTS], name='output') # one sample is something like[Ax,Ay,Az]
# one hidden layer with 3 outputs
W = {
'hidden': tf.Variable(tf.random_normal([N_INPUTS, N_HIDDEN_UNITS])),
'output': tf.Variable(tf.random_normal([N_HIDDEN_UNITS, N_OUTPUTS]))
}
biases = {
'hidden': tf.Variable(tf.random_normal([N_HIDDEN_UNITS], mean=1.0)),
'output': tf.Variable(tf.random_normal([N_OUTPUTS]), mean=1.0)
}
hidden = tf.matmul(input, W['hidden']) + biases['hidden'] # hidden layer
output_ = tf.matmul(hidden, W['output']) + biases['output'] # outputs
cost = tf.reduce_mean(tf.square(output_ - outputs)) # calculates the cost
optimizer = tf.train.GradientDescentOptimizer(0.001).minimize(cost) # optimazer
with tf.Session() as session:
session.run(tf.global_variables_initializer())
for epoch in range(N_EPOCHS):
# _ = session.run([optimizer],feed_dict={input: , outputs : }) should feed input and output as [Ax,Ay,Az]
上面,我创建了一个只有一个隐藏层的NN模型,然后输出3个值( [Ax,Ay,Az] )。
但是,如果您的 [Ax,Ay,Az] 是相互依赖的(即具有相关性),您可以尝试类似上述模型的内容。否则,只需为三个输出构建3个独立模型并单独训练它们。
希望这有帮助。