问题标签 [deconvolution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - TensorFlow conv2d_transpose output_shape
我想实现一个输入大小不固定的生成对抗网络 (GAN),例如4-D Tensor (Batch_size, None, None, 3)
.
但是当我使用conv2d_transpose时,有一个参数output_shape
,这个参数必须通过true size
反卷积后的操作。
例如,如果the size of batch_img is (64, 32, 32, 128), w is weight with (3, 3, 64, 128)
,之后
deconv = tf.nn.conv2d_transpose(batch_img, w, output_shape=[64, 64, 64, 64],stride=[1,2,2,1], padding='SAME')
所以,我得到deconv
了size (64, 64, 64, 64)
,如果我通过了就可以了true size of output_shape
。
但是,我想使用 unfixed input size (64, None, None, 128)
,并deconv
使用(64, None, None, 64)
.
但是,它会引发如下错误。
TypeError: Failed to convert object of type <type'list'> to Tensor...
那么,我该怎么做才能避免 deconv 中的这个参数呢?还是有另一种方法来实现不固定的 GAN?
matlab - 在 MATLAB 中通过反卷积确定 PSF
我试图通过对测试图案(代表模糊图像)的测量和该测量的模拟(代表非模糊图像)的反卷积过程来确定某个显微镜的点扩散函数(PSF) . 他们自己的“图像”是图案的微观图像(可以说是高度轮廓)中的线条,换句话说,我正在一维空间中工作。(然后我想将结果用于 2D 问题,顺便提一下。)
我现在的问题是:是否有任何选项可以利用MATLAB (deconvlucy
...这两个数据集?我已经尝试做一个“图像”,将它们分开,然后做一个除法()但是这个 ansatz 的 PSF 在以后的反卷积中使用时不会产生所需的结果。deconvwnr
deconvreg
fft
ifft
PSF = ifft((fft(measured))/(fft(sim)))
python - 修正 Tensorflow 中的反卷积层
我试图用 Tensorflow 构建一个变分自动编码器。我从最简单的模型开始。我有以下方法:
整个网络的模型如下:
我从 a 获取我的图像FIFOQueue
并将它们输入到这个模型中。我的图像大小是112, 112, 3
. 我的问题是从
conv和deconv[1, 1, 1, 1] to [1, 2, 2, 1]
层中更改步幅时出现以下错误:
PS:我知道我在 deconv 层缺少激活函数,但我想这与我得到的错误无关。任何帮助深表感谢!!
caffe - 反卷积层 FCN 初始化 - 损失下降太快
我正在训练一个小型(12K 图像上的 10M 权重)FCN(参见例如 Long et al, 2015)。架构如下(从FCN8s fc7层开始):
当我用高斯权重初始化所有反卷积层时,我得到了一些(尽管不总是)合理的结果。然后我决定以正确的方式做,并使用 Shelhamer 提供的脚本(例如https://github.com/zeakey/DeepSkeleton/blob/master/examples/DeepSkeleton/solve.py)
反卷积层看起来像这样(第一个):
我得到的输出真的很奇怪:损失下降很快(1000 代),并且保持在 1 左右,但该模型在测试集上完全没用。有什么建议么?我降低了学习率,但似乎没有任何效果。
PS:培训的简短打印输出
caffe - 一些反卷积层中的导数大多全为零
这是一个非常奇怪的错误,部分是对上一个问题(反卷积层 FCN 初始化 - 损失下降太快)的后续。
但是我初始化 Deconv 层(双线性或高斯),我得到了同样的情况:
1)权重已更新,我检查了多次迭代。反卷积/上采样层的大小是相同的:(2,2,8,8)
首先,net_mcn.layers[idx].blobs[0].diff
返回带有浮点数的矩阵,最后一个 Deconv 层 ( upscore5
) 产生两个具有相同数字但符号相反的数组,即权重应该在不同方向上以相同的速率移动,但结果权重实际上几乎相同!
相当令人惊讶的是,剩下的四个 deconv 层没有这个错误。因此,当我比较模型时,例如,foriter=5000
和iter=55000
deconv 层的权重是非常不同的。
更令人惊讶的是,其他层(卷积)的变化要小得多!
这是 init 的打印输出部分,用于确认 deconv 层已更新:
2) Blobs diffs 对于反卷积层都是零
几乎所有反卷积层的数据流(查找关于输入的 Caffe 卷积过滤器的梯度)的差异在算法的整个持续时间内都是零,除了少数例外(也接近 0,例如)。-2.28945263e-09
卷积层差异看起来不错。
我认为这是一个悖论 - deconv 层中的权重已更新,但与神经元的差异都是 0(常数?)
3) Deconv 特征快速增长
远大于 FCN 和 CRFasRNN,高达 5.4e+03,同时附近的像素对于同一类可能具有非常不同的值(例如 5e+02 和 -300)。
4)训练和验证错误下降,通常很快
正如我在提到的问题中指出的那样。
所以把它们放在一起——我不明白该怎么做。如果是过拟合,那为什么验证错误也会减少呢?
网络的架构是
编辑:我错了,并非所有 net.blobs[...].diffs 中的所有条目都是 0,但主要是随着层变大。这取决于数据大小。
c++ - How to implement the deconv layer in caffe in the 3D filter manner?
I have a requirement to implement the forward computing of deconv layer in the 3D filter manner.
Here, by '3D filter manner', I mean convolution like the Gaussian filter in CV. In the contrast, the caffe implements the deconv in the gemm + col2im manner.
I find a similar question here. The guy wrote the code according the introduction in tranposed conv.
He/She does not open the source code. So I finished my own one:
I compare the result with the caffe's one:
However, the code does not give the same result with the caffe's implementation.
Do anyone know what is wrong? Or any advises or comment on the code?
python - 通过相机输入的实时性能消除运动模糊
我在一张纸上绘制了简单的几何形状图案,并将其放置在一个物体上作为标记。我能够成功地检测和分析模式。然而,当物体移动得更快一点时,就会引入运动模糊,它可以是旋转的或线性的。这样,检测到的区域重叠,例如在箭头方向上移动的一条箭头,在引入运动模糊后被检测为单条线。因此我需要以某种方式修复它。所以我可以检测单个箭头并分析它们。下面是带有和不带有运动模糊的标记的图像。
有没有可以用来解决它的python模块或开源实现?运动可以在任何方向以任何速度进行,因此 PSF 是未知的,并且对于 Wiener、Lucy-Richardson 方法是必需的。这也是一个实时跟踪问题,所以我需要一些快速执行的东西。
PS 我正在使用 Python 2.7 和 Opencv 3
neural-network - 如何在卷积网络中使用 im2col 操作更有效?
我正在尝试实现卷积神经网络,但我不明白为什么使用 im2col 操作更有效。它基本上将要乘以过滤器的输入存储在单独的列中。但是为什么不应该直接使用循环来计算卷积而不是首先执行 im2col 呢?
tensorflow - 使用张量流进行反卷积/Transpose_Convolutions
我正在尝试使用tf.nn.conv3d_transpose
,但是,我收到一个错误,表明我的过滤器和输出形状不兼容。
- 我有一个大小为 [1,16,16,4,192] 的张量
- 我正在尝试使用 [1,1,1,192,192] 的过滤器
- 我相信输出形状将是 [1,16,16,4,192]
- 我正在使用“相同”的填充和 1 的步幅。
最终,我希望输出形状为 [1,32,32,7,“没关系”],但我试图先让一个简单的案例起作用。
由于这些张量在常规卷积中是兼容的,我相信相反的反卷积也是可能的。
为什么不可能对这些张量进行反卷积。我能否获得一个有效滤波器大小和输出形状的示例,用于对形状 [1,16,16,4,192] 的张量进行反卷积
谢谢你。
image-processing - Keras 函数的 Tensorflow 等效项:UpSampling2D
我想使用 Keras 层:
如何使用本机 tensorflow 复制此行为?
我无法找到等效的功能/层。