标签: convolution

R中的卷积

我试图直接在R中进行卷积并使用FFT然后进行反演.但似乎从简单的观察来看它是不正确的.看看这个例子:

# DIRECTLY
> x2$xt
[1] 24.610 24.605 24.610 24.605 24.610
> h2$xt
[1] 0.003891051 0.003875910 0.003860829 0.003845806 0.003830842
> convolve(h2$xt,x2$xt)
[1] 0.4750436 0.4750438 0.4750435 0.4750437 0.4750435

# USING INVERSE FOURIER TRANSFORM
> f=fft(fft(h2$xt)*fft(x2$xt), inv=TRUE)
> Re(f)/length(f) 
[1] 0.4750438 0.4750435 0.4750437 0.4750435 0.4750436
>
Run Code Online (Sandbox Code Playgroud)

让我们取指数0.在0时,卷积应该只是x2 $ xt(24.610)的最后一个值乘以h2 $ xt(0.003891051)的第一个值,它应该在索引0 = 24.610*0.003891051 = 0.09575877处给出卷积,这是从0.4750436离开.

难道我做错了什么?为什么价值观与预期不同?

r fft convolution

6
推荐指数
1
解决办法
8188
查看次数

matlab中的二维卷积 - 代码优化

这是我们在图像处理功课中的练习.我的代码工作正常.我想得到一些代码优化方面的帮助.

function C = convolve_slow(A,B)
(file name is accordingly convolve_slow.m ) 
This routine performs convolution between an image A and a mask B.
Input:      A - a grayscale image (values in [0,255]) 
            B - a grayscale image (values in [0,255]) serves as a mask in the convolution.
Output:     C - a grayscale image (values in [0,255]) - the output of the convolution. 
                      C is the same size as A.

Method:  Convolve A with mask B using zero padding. Assume the …
Run Code Online (Sandbox Code Playgroud)

optimization matlab image-processing convolution

6
推荐指数
1
解决办法
2万
查看次数

如何将反向传播算法应用于卷积神经网络中的局部对比度归一化层?

我阅读了反向传播算法并理解为了计算网络参数的梯度,误差项应该从最后一个输出层反向传播到第一个隐藏层.但是当我在卷积神经网络中使用局部对比度归一化层时,我发现不清楚如何反向传播误差项.

可以在此处找到本地对比度规范化层的说明:http: //code.google.com/p/cuda-convnet/wiki/LayerParams#Data_layer

networking convolution

6
推荐指数
0
解决办法
478
查看次数

特定点的图像卷积

scipy(或其他类似的库)中是否有办法仅在某些所需的点上获取具有给定内核的图像的卷积?

我正在寻找类似的东西:

ndimage.convolve(image, kernel, mask=mask)
Run Code Online (Sandbox Code Playgroud)

其中mask包含True(或1)每当内核需要被应用,False(或0)其他方式。

编辑:示例python代码可以完成我想做的事情(但不比使用scipy进行整个图像卷积要快):

def kernel_responses(im, kernel, mask=None, flatten=True):
    if mask is None:
        mask = np.ones(im.shape[:2], dtype=np.bool)

    ks = kernel.shape[0]//2

    data = np.pad(im, ks, mode='reflect')
    y, x = np.where(mask)

    responses = np.empty(y.shape[0], float)

    for k, (i, j) in enumerate(zip(y, x)):
        responses[k] = (data[i:i+ks*2+1, j:j+ks*2+1] * kernel).sum()

    if flatten:
        return responses

    result = np.zeros(im.shape[:2], dtype=float)
    result[y, x] = responses
    return result
Run Code Online (Sandbox Code Playgroud)

上面的代码使用wrap边界条件来完成这项工作,但是内部循环在python中进行,因此很慢。我在想,如果有东西在快已经实施scipy/ opencv/ …

python numpy convolution scipy scikit-image

6
推荐指数
2
解决办法
2658
查看次数

ValueError:尺寸必须相等,但对于具有输入形状的'Conv2D'(op:'Conv2D'),尺寸必须为1和3:[1,400,400,1],[1,3,3,1]

我试图为2D输入创建一个简单的单层卷积,这个想法只是有一个输入图像,内核和输出代码是:

import tensorflow as tf
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

filename_queue = tf.train.string_input_producer(['/home/ubuntu/test.png']) 

reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)

my_img = tf.image.decode_png(value) 

init_op = tf.initialize_all_variables()
sess = tf.InteractiveSession()
with sess.as_default():
    sess.run(init_op)

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)

for i in range(1): 
  image = my_img.eval() 
image = tf.cast(image, tf.float64)
image = tf.expand_dims(image, 0)

K=np.array([[0,1,0],[1,1,1],[0,1,0]]).astype(float)
K = tf.expand_dims(K, 2)
K = tf.expand_dims(K, 0)


conv = tf.nn.conv2d(
        image,
        K,
        strides=[3, 3, 3, 3],
        padding="SAME")
Run Code Online (Sandbox Code Playgroud)

我收到此错误: …

python machine-learning convolution tensorflow

6
推荐指数
1
解决办法
2万
查看次数

如何使用keras在ROI周围创建边界框

我有关于keras和卷积神经网络的问题:

1.如何使用keras和卷积神经网络创建边界框?

2.如何使用keras vgg16应用程序再培训?

python bounding-box convolution keras

6
推荐指数
0
解决办法
750
查看次数

如何在TensorFlow中计算CNN的准确性

我是TensorFlow的新手.我正在使用自己的数据集进行二进制分类.但是我不知道如何计算准确度.有人可以帮我这么做吗?

我的分类器有5个卷积层,后面是2个完全连接的层.最终的FC层的输出维度为2,我使用过:

prob = tf.nn.softmax(classification_features, name="output")
Run Code Online (Sandbox Code Playgroud)

classification convolution tensorflow

6
推荐指数
1
解决办法
9024
查看次数

减少卷积神经网络中的滤波器尺寸

我正在阅读Szegedy等人的起始论文:https://arxiv.org/abs/1512.00567 ,我无法理解他们如何通过用2层3x3过滤器替换单个5x5过滤器来减少计算量(部分3.1).

在此输入图像描述

特别是这段经文:

如果我们在不重用相邻网格块之间的计算的情况下天真地滑动网络,我们就会增加计算成本.滑动该网络可以由两个3×3卷积层表示,这两个层重复使用相邻瓦片之间的激活.

我不明白我们如何重用这些激活.

convolution neural-network conv-neural-network

6
推荐指数
1
解决办法
1463
查看次数

如何在PyTorch conv2d函数中使用groups参数

我试图在PyTorch中计算每个通道的渐变图像.为此,我想在图像的每个通道上使用Sobel滤波器执行标准2D卷积.我正在使用这个torch.nn.functional.conv2d功能

在我下面的最小工作示例代码中,我收到一个错误:

import torch
import torch.nn.functional as F

filters = torch.autograd.Variable(torch.randn(1,1,3,3))
inputs = torch.autograd.Variable(torch.randn(1,3,10,10))
out = F.conv2d(inputs, filters, padding=1)
Run Code Online (Sandbox Code Playgroud)

RuntimeError:给定组= 1,权重[1,1,3,3],所以预期输入[1,3,10,10]有1个通道,但得到3个通道

这表明groups需要为3.但是,当我制作时groups=3,我得到一个不同的错误:

import torch
import torch.nn.functional as F

filters = torch.autograd.Variable(torch.randn(1,1,3,3))
inputs = torch.autograd.Variable(torch.randn(1,3,10,10))
out = F.conv2d(inputs, filters, padding=1, groups=3)
Run Code Online (Sandbox Code Playgroud)

RuntimeError:无效参数4:超出范围/usr/local/src/pytorch/torch/lib/TH/generic/THTensor.c:440

当我检查THTensor类中的代码片段时,它引用了一堆维度检查,但我不知道我哪里出错了.

这个错误是什么意思?如何使用此conv2d功能执行我想要的卷积?我相信我误解了groups参数.

convolution pytorch

6
推荐指数
1
解决办法
4417
查看次数

FFT卷积后重新缩放复杂数据

我已经通过在FFT卷积输出上应用它们来测试两个重新缩放功能.

第一个是从这个链接收集的.

    public static void RescaleComplex(Complex[,] convolve)
    {
        int imageWidth = convolve.GetLength(0);
        int imageHeight = convolve.GetLength(1);

        double maxAmp = 0.0;
        for (int i = 0; i < imageWidth; i++)
        {
            for (int j = 0; j < imageHeight; j++)
            {
                maxAmp = Math.Max(maxAmp, convolve[i, j].Magnitude);
            }
        }
        double scale = 1.0 / maxAmp;
        for (int i = 0; i < imageWidth; i++)
        {
            for (int j = 0; j < imageHeight; j++)
            {
                convolve[i, j] = new Complex(convolve[i, …
Run Code Online (Sandbox Code Playgroud)

c# image-processing convolution

6
推荐指数
1
解决办法
217
查看次数