在卷积层中使用自定义滤波器进行张量流

时间:2016-06-27 21:20:01

标签: tensorflow

我从各种教程中学习Tensorflow,并且想知道是否可以为卷积网定义自定义过滤器。例如,如果我知道要素中有有意义的结构,使得每个其他要素都相关,我想要定义一个看起来像[0 1 0 1 0 1]的过滤器。

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)

到目前为止,我见过的所有例子都使用了:

tf.random_normal

tf.truncated_normal

用于过滤器参数。我是否可以将[0 1 0 1]放入过滤器参数中,这对我有意义吗?

2 个答案:

答案 0 :(得分:3)

你当然可以!您可以在卷积滤镜中放置任何(浮点)值。

但是,卷积滤镜中的值通常是变量,其值Tensorflow在训练期间学习,而不是常量。 “tf.random_normal”和“tf.truncated_normal”值仅用于设置过滤器的初始值。这些变量的值将在训练期间通过梯度下降算法进行更新。

有关使用卷积神经网络进行训练的示例,请查看此处的教程: https://www.tensorflow.org/versions/r0.9/tutorials/deep_cnn/index.html

希望有所帮助!

答案 1 :(得分:0)

是的,但CNN的主要目的是根据数据学习最好的内核。另外tf.conv2d不是学习一个内核,而是学习out_channels内核。

在CNN之前,人们实际使用了各种kernels

相关问题