如标题所述,我想使用现有的ops和tensor操作在tensorflow中实现自定义层。我想知道我是否可以像在theano中一样在python中做到这一点。在这一层中,输入可能是一些矩阵,批次输入以及一些权重和偏差需要学习。经过一些张量运算后,输出将被馈送到下一层。这一层的计算可能很复杂,所以我想知道tensorflow是否可以为我做自动差分。
如果您的图层是现有操作的组成部分,那么它将正常工作。例如,这就是TF-Slim的工作方式。
# Skeleton code, just to demonstrate the concept
def conv(input, ...):
kernel = tf.Variable(...)
tmp = tf.nn.conv2d(input, kernel, ...)
bias = tf.Variable(...)
tmp = tf.nn.bias_add(tmp, bias, ...)
return tf.nn.relu(tmp, ...)
定义一个函数,该函数为您提供一个“集成”层,该层执行基本卷积层的常规步骤,然后您可以将其用作
layer_1 = conv(input, ...)
layer_2 = conv(layer_1, ...)
等等。只要您只编写具有渐变的操作,自动区分功能就可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句