来自tf.conv3d的尺寸与膨胀和“有效”填充不一致 - python

当在1D和2D中使用带有扩张和VALID填充的Tensorflow卷积时,输出张量的大小小于没有扩张的情况,如预期的那样。但是,对于3D卷积,情况并非如此,并且不管膨胀如何,都输出相同的形状。即使请求“ VALID”,似乎也要使用“ REFLECT”填充。

使用Tensorflow 1.8.0。

import tensorflow as tf
import numpy as np

data = tf.constant(np.ones((1, 12, 1)))
weights = tf.constant(np.ones((3, 1, 1)))
conv = tf.nn.convolution(data, weights, "VALID")
conv_dil = tf.nn.convolution(data, weights, "VALID", dilation_rate=[2])

data2D = tf.constant(np.ones((1, 12, 12, 1)))
weights2D = tf.constant(np.ones((3, 3, 1, 1)))

conv2D = tf.nn.conv2d(data2D, weights2D, [1, 1, 1, 1], "VALID")
conv_dil2D = tf.nn.conv2d(data2D, weights2D, [1, 1, 1, 1], "VALID", dilations=[1, 2, 2, 1])

data3D = np.ones((1, 12, 12, 12, 1))
data3D[0, 0, 2, 0, 0] = 2
data3D[0, 0, 1, 0, 0] = 2
data3D = tf.constant(data3D)
weights3D = tf.constant(np.ones((3, 3, 3, 1, 1)))


conv3D = tf.nn.conv3d(data3D, weights3D, [1, 1, 1, 1, 1], "VALID")
conv_dil3D = tf.nn.conv3d(data3D, weights3D, [1, 1, 1, 1, 1], "VALID", dilations=[1, 2, 2, 2, 1])


with tf.Session() as sess:
    conv_out, conv_dil_out, conv2D_out, conv_dil2D_out, conv3D_out, conv_dil3D_out = sess.run([conv, conv_dil, conv2D, conv_dil2D, conv3D, conv_dil3D])
    print("1D")
    print(conv_out.shape)
    print(conv_dil_out.shape)
    print("2D")
    print(conv2D_out.shape)
    print(conv_dil2D_out.shape)
    print("3D")
    print(conv3D_out.shape)
    print(conv_dil3D_out.shape)
    print("Values:")
    print(conv_dil3D_out[0, 0, 0, 0, 0])
    print(conv_dil3D_out[0, 0, 0, 2, 0])
    print(conv_dil3D_out[0, 0, 2, 0, 0])

结果是:

一维
(1、10、1)
(1、8、1)
2D
(1、10、10、1)
(1、8、8、1)
3D
(1、10、10、10、1)
(1、10、10、10、1)
值:
29.0
27.0
28.0

参考方案

升级到1.10,问题消失了。现在,已扩展的conv3d输出的大小为预期的(1、8、8、8、8、1)。

Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…

Python-crontab模块 - python

我正在尝试在Linux OS(CentOS 7)上使用Python-crontab模块我的配置文件如下:{ "ossConfigurationData": { "work1": [ { "cronInterval": "0 0 0 1 1 ?", "attribute&…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python:检查是否存在维基百科文章 - python

我试图弄清楚如何检查Wikipedia文章是否存在。例如,https://en.wikipedia.org/wiki/Food 存在,但是https://en.wikipedia.org/wiki/Fod 不会,页面只是说:“维基百科没有此名称的文章。”谢谢! 参考方案 >>> import urllib >>> prin…

Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…