我可以实现自己的卷积函数来取代tensorflow中的tf.nn.conv2d吗?我该怎么做?

6yjfywim  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(112)

我想实现我自己的卷积函数,就像tensorflow中的tf.nn.conv2d函数一样。我想知道我是否可以用tensorflow提供的现有接口来做到这一点。有人建议我根据tensorflow网站上的“如何在tensorflow中添加新操作”教程来实现这一点。我真的应该先在C++中实现我的函数,然后将其添加到tensorflow中吗?

iqxoj9l9

iqxoj9l91#

您可能需要查看How to make a custom activation function with only Python in Tensorflow?
patapouf_ai解释了如何使用python代码添加操作(而不需要实现C++代码。

wztqucjr

wztqucjr2#

使用TensorFlow API和模型子类化的一种方法

#Custom class inherited from Layer class

class CustomConv2D(Layer):

def __init__(self, n_filters, kernel_size, n_strides, padding="valid"):
    super(CustomConv2D, self).__init__(name="custom_conv2D")
   
    # From tensorflow API
    self.conv = Conv2D(
        filters=n_filters,
        kernel_size=kernel_size,
        activation="relu",
        strides= n_strides,
        padding=padding
    )

    # For batch normalization and can be removed if not required for use case

    self.batch_norm = BatchNormalization()

def call(self, x, training):

    x = self.conv(x)
    x = self.batch_norm(x, training)

    return x

字符串

相关问题