小编Nik*_*las的帖子

在 Keras 自定义层中获取批量大小并使用张量流操作(tf.Variable)

我想编写一个带有张量流操作的 Keras 自定义层,需要批量大小作为输入。显然我在每个角落都在挣扎。

假设一个非常简单的层:(1)获取批量大小(2)根据批量大小创建一个 tf.Variable(我们称之为 my_var),然后使用一些 tf.random 操作来改变 my_var(3)最后,返回输入乘以我的_var

到目前为止我尝试过的:

class TestLayer(Layer):

    def __init__(self, **kwargs):

        self.num_batch = None
        self.my_var = None

        super(TestLayer, self).__init__(**kwargs)

    def build(self, input_shape):

        self.batch_size = input_shape[0]

        var_init = tf.ones(self.batch_size, dtype = x.dtype)
        self.my_var = tf.Variable(var_init, trainable=False, validate_shape=False)

        # some tensorflow random operations to alter self.my_var

        super(TestLayer, self).build(input_shape)  # Be sure to call this at the end

    def call(self, x):

        return self.my_var * x

    def compute_output_shape(self, input_shape):

        return input_shape
Run Code Online (Sandbox Code Playgroud)

现在创建一个非常简单的模型:

# define model
input_layer = Input(shape = (2, …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

5
推荐指数
1
解决办法
6796
查看次数

标签 统计

keras ×1

python ×1

tensorflow ×1