【问题标题】:Tensorflow: Filter must not be larger than the inputTensorflow:过滤器不能大于输入
【发布时间】:2016-09-25 23:14:28
【问题描述】:

我想沿着形状为 [n*1] 的训练样本执行卷积并应用零填充。到目前为止,还没有结果。

我正在构建一个字符级 CNN(想法来自 here

我的数据本质上是推文,最初每个长度为 140。 我过滤所有非字母字符(将它们替换为空字符串''),我将所有字母字符转换为小写并编码为 one-hot 编码器。

所以我的数据是 n*m,其中 n 是训练示例的数量,m=140*26=3640,因为每个字母字符都被编码为 one-hot 向量。

现在,我正在尝试执行卷积,这就是我遇到问题的地方。本质上: 1)我尝试用零填充一条推文。 2)然后我想要做的是沿着推文使用 3*3 的过滤器执行卷积,我希望它的大小为 3642*3,其中宽度 = 3642,高度 = 3 后填充。

F = 3 # filter size
S = 1 # stride
P = 1 # zero-pading
MAX_DOCUMENT_LENGTH = 3640
IMAGE_WIDTH = MAX_DOCUMENT_LENGTH
IMAGE_HEIGHT = 1
N_FILTERS = 20
FILTER_SHAPE1 = F
BATCH_SIZE = 257

def conv_model(X, y):
    X = tf.cast(X, tf.float32)
    y = tf.cast(y, tf.float32)
    # reshape X to 4d tensor with 2nd and 3rd dimensions being image width and height
    # final dimension being the number of color channels
    X = tf.reshape(X, [-1, IMAGE_WIDTH, IMAGE_HEIGHT, 1])
   # first conv layer will compute N_FILTERS features for each FxF patch
    with tf.variable_scope('conv_layer1'):
            h_conv1 = tf.contrib.layers.conv2d(inputs=X,num_outputs=N_FILTERS, 
                                  kernel_size=[3,3], padding='VALID')

我收到错误:ValueError: Filter must not be larger than the input: Filter: (3, 3) Input: (3640, 1)

为什么不应用零填充?至少,它应用的结果不起作用...

所以我将过滤器大小更改为[3,1],然后调用:

h_conv1 = tf.contrib.layers.conv2d(inputs=X, num_outputs=N_FILTERS, kernel_size=[3,1], padding='VALID')

我没有得到错误。

有人能解释一下发生了什么吗?

另外,为什么我们需要将输入重塑为 X = tf.reshape(X, [-1, IMAGE_WIDTH, IMAGE_HEIGHT, 1])?

【问题讨论】:

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


    【解决方案1】:

    为什么不应用零填充?

    在 conv2d 中使用 padding = 'SAME' 进行零填充。

    有人能解释一下发生了什么吗?

    对于“平面”图像,您不能使用 3x3 滤镜。要使用 3x3 过滤器,输入的宽度和高度都应大于 3。

    另外,为什么我们需要将输入重塑为 X = tf.reshape(X, [-1, IMAGE_WIDTH, IMAGE_HEIGHT, 1])?

    单个图像的形状为 [width, height, number_of_channels]。额外维度代表小批量大小。 -1 只保留总大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多