我可以在TensorFlow“自定义”层中添加tf.keras.backend函数吗?

时间:2019-04-09 23:31:42

标签: python tensorflow machine-learning keras deep-learning

TensorFlow可以使用tf.keras实现Keras。

Keras提供了三种后端实现:TensorFlow后端,Theano后端和CNTK后端。

如果我想构建自定义图层,可以在调用函数中添加tf.keras.backend.theano.tensor.dottf.keras.backend.theano.gradient.disconnected_grad吗?

例如,TensorFlow(https://www.tensorflow.org/tutorials/eager/custom_layers)中只有一个程序:

class MyDenseLayer(tf.keras.layers.Layer):
    def __init__(self, num_outputs):
        super(MyDenseLayer, self).__init__()
        self.num_outputs = num_outputs

    def build(self, input_shape):
        self.kernel = self.add_variable("kernel", 
                                    shape=[int(input_shape[-1]), 
                                           self.num_outputs])

    def call(self, input):
        return tf.matmul(input, self.kernel)

我可以将通话功能更改为:

def call(self, input):
    return tf.keras.backend.theano.tensor.dot(self.kernel,tf.keras.backend.theano.gradient.disconnected_grad(input))

0 个答案:

没有答案