【发布时间】:2019-03-21 12:19:09
【问题描述】:
所以我的问题似乎很简单,但我无法弄清楚 python tensorflow 的语法。 我有一个简单的神经网络,它有一个输入层、一个隐藏层和一个输出层。 输出层由两个神经元组成。 所以问题来了:我想保持线性的第一个输出神经元,而第二个输出神经元应该有一个 sigmoidal 激活函数。 我发现 tensorflow 中没有“切片分配”之类的东西,但我没有找到任何解决方法。
这里是一个例子 sn-p:
def multilayer_perceptron(x, weights, biases,act_fct):
layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'], name='hidden_layer_op')
if (act_fct == 'sigmoid'):
layer_1 = tf.nn.sigmoid(layer_1)
print 'sigmoid'
elif (act_fct == 'relu'):
print 'relu'
layer_1 = tf.nn.relu(layer_1)
elif (act_fct == 'linear'):
print 'linear'
else :
print 'Unknown activation function'
sys.exit()
out_layer = tf.add(tf.matmul(layer_1, weights['out']), biases['out'], name='output_layer_op')
##DOES NOT WORK!
out_layer[1] = tf.nn.sigmoid(out_layer[1])
return out_layer
我确信有一种非常简单的方法可以做到这一点。但是希望有人可以帮助我。 附言(传递给函数的所有变量都已事先相应地初始化)
最好的问候和感谢!
【问题讨论】:
标签: python tensorflow machine-learning neural-network