精华内容
下载资源
问答
  • Deconv

    2017-04-23 19:34:18
  • spiking deconv

    2009-09-02 17:20:47
    use to deconv the seismic data
  • deconv 函数介绍

    千次阅读 2019-02-21 11:04:49
    deconv Deconvolution and polynomial division Syntax [q,r] = deconv(u,v) Description [q,r] = deconv(u,v) 使用长除法将向量v从向量u中解卷积,并返回商q和余数r,使得u = conv(v,q)+ r。 如果u和v是多项式...

    deconv
    Deconvolution and polynomial division

    Syntax
    [q,r] = deconv(u,v)

    Description
    [q,r] = deconv(u,v) 使用长除法将向量v从向量u中解卷积,并返回商q和余数r,使得u = conv(v,q)+ r。 如果u和v是多项式系数的向量,则对它们进行去卷积相当于将由u表示的多项式除以由v表示的多项式。

    废话那么多,就是多项式除法,,使用MATLAB表达为:[q,r]= deconv(u,v);

    所以,,使用MATLAB表示为:u = conv(q,v)+r;

    Polynomial Division

    Create two vectors u and v containing the coefficients of the polynomials ,respectively. Divide the first polynomial by the second by deconvolving v out of u, which results in quotient coefficients corresponding to the polynomial 2x+7 and remainder coefficients corresponding to 2x+2.

    分别创建包含多项式系数的两个向量u和v。通过对u中的v进行去卷积将第一多项式除以第二多项式,这导致对应于多项式2x + 7的系数和对应于2x + 2的余数系数。

    u = [2 7 4 9];
    v = [1 0 1];
    [q,r] = deconv(u,v)

    在这里插入图片描述

    在这里插入图片描述


    作者:李锐博恩(Reborn)
    来源:CSDN
    原文:https://blog.csdn.net/reborn_lee/article/details/83420213
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Question about binary Deconv

    2020-12-09 01:23:04
    <p>Also, checking the graph it seems that the only difference between the two is the <code>LceBsign</code> op before the deconv op as seen in the pictures below. <p>Is this expected behaviour or am I...
  • help wanted for deconv

    2020-12-02 22:51:05
    <p>I used deconv with 2x2 kernel and 2x2 stride for a 2x upscaling. I also created a wrapper function to build deconv layers (because my model has several of thos) <p>For whatever reasons, I could not...
  • <div><p>I tried implementing the training function of the model_01_deconv.py function but I get errors starting with the first being the following: File "model_01_deconv.py", line 382, in ...
  • Conv-Deconv-神经网络- 介绍 该项目使用Pytorch [1]实现Zeiler的方法来可视化反卷积神经网络。 还实现了卷积神经网络以帮助测试结果。 网络使用了预训练的VGG16模型和一些图片。 我希望演示一个示例,该示例使用...
  • <p>For regular convolutions the weight distribution is (h,w,c,n), while for deconv layers it's (h,w,n,c). Why is this the case?</p><p>该提问来源于开源项目:lmb-freiburg/flownet2</p></div>
  • <div><p>Deconv, which is used in flownet, is registered into CONV_LAYERS in this PR.</p><p>该提问来源于开源项目:open-mmlab/mmcv</p></div>
  • Deconv的python实现

    2019-04-23 14:40:48
    之前一段时间学习cs231n时,写过的几个naive版本的conv和deconv函数,今天拿出来跟大家分享。 conv def conv(X, w, b, conv_param): ''' X: input with shape (C, H, W) W: filter with shape (C, HH, WW) b:...

    之前一段时间学习cs231n时,写过的几个naive版本的conv和deconv函数,今天拿出来跟大家分享。

    conv

    def conv(X, w, b, conv_param):
        '''
        X: input with shape (C, H, W)
        W: filter with shape (C, HH, WW)
        b: bias float
        '''
    
        C, H, W = X.shape
        C, HH, WW = w.shape
        pad = conv_param['pad']
        stride = conv_param['stride']
    
        # padding
        npad = ((0, 0), (pad, pad), (pad, pad))
        X = np.pad(X, pad_width = npad, mode = 'constant', constant_values = 0)
    
        H_o = 1 + (H + 2 * pad - HH) // stride
        W_o = 1 + (W + 2 * pad - WW) // stride
        
        # conv
        Y = np.zeros((H_o, W_o))
        for i in range(H_o):
            for j in range(W_o):
                left_top_y, left_top_x = i * stride, j * stride
                conv_map = X[:, left_top_y:(left_top_y + HH), left_top_x:(left_top_x + HH)] * w
                Y[i, j]  = np.sum(conv_map) + b
    
        return Y
    def conv_forward_naive(x, w, b, conv_param):
        """
        A naive implementation of the forward pass for a convolutional layer.
    
        The input consists of N data points, each with C channels, height H and width
        W. We convolve each input with F different filters, where each filter spans
        all C channels and has height HH and width HH.
    
        Input:
        - x: Input data of shape (N, C, H, W)
        - w: Filter weights of shape (F, C, HH, WW)
        - b: Biases, of shape (F,)
        - conv_param: A dictionary with the following keys:
          - 'stride': The number of pixels between adjacent receptive fields in the horizontal and vertical directions.
          - 'pad'   : The number of pixels that will be used to zero-pad the input.
    
        Returns a tuple of:
        - out: Output data, of shape (N, F, H', W') where H' and W' are given by
                     H' = 1 + (H + 2 * pad - HH) // stride
                     W' = 1 + (W + 2 * pad - WW) // stride
        - cache: (x, w, b, conv_param)
        """
    
        out = None
    
        # get params
        N, C, H, W   = x.shape
        F, C, HH, WW = w.shape
    
        # conv for evry image
        out = []
        for i in range(N):
            channel_list = []
            for j in range(F):
                y = conv(x[i], w[j], b[j], conv_param)
                channel_list.append(y)
            out.append(channel_list)
    
        out = np.array(out)
    
        cache = (x, w, b, conv_param)
        return out, cache

    deconv

    def conv_backward_naive(dout, cache):
        """
        A naive implementation of the backward pass for a convolutional layer.
    
        Inputs:
        - dout: Upstream derivatives.
        - cache: A tuple of (x, w, b, conv_param) as in conv_forward_naive
    
        Returns a tuple of:
        - dx: Gradient with respect to x
        - dw: Gradient with respect to w
        - db: Gradient with respect to b
        """
    
        dx, dw, db = None, None, None
    
        x, w, b, conv_param = cache
        stride = conv_param['stride']
        pad = conv_param['pad']
        N, C, H, W = x.shape
        F, _, HH, WW = w.shape
        _, _, H_o, W_o = dout.shape
    
        npad  = ((0, 0), (0, 0), (pad, pad), (pad, pad))
        x_pad = np.pad(x, pad_width = npad, mode = 'constant', constant_values = 0)
    
        # calculate the db
        db, temp = np.zeros((F)), dout.transpose(1, 0, 2, 3)
        for f in range(F):
            db[f] = np.sum(temp[f, :, :, :])
        
        # calculate the dx and dw
        dw, dx_pad = np.zeros(w.shape), np.zeros(x_pad.shape)
        for n in range(N):
            for f in range(F):
                for i in range(H_o):
                    for j in range(W_o):
                        y_left_top, x_left_top = i * stride, j * stride
                        current_x_matrix = x_pad[n, :, y_left_top:(y_left_top + HH), x_left_top:(x_left_top + WW)]
                        dw[f] += dout[n, f, i, j] * current_x_matrix
                        dx_pad[n, :, y_left_top:(y_left_top + HH), x_left_top:(x_left_top + WW)] += w[f] * dout[n, f, i, j]
    
        dx = dx_pad[:, :, pad: H + pad, pad: W + pad]
        return dx, dw, db

     

    展开全文
  • dilation conv 和 deconv

    千次阅读 2018-07-02 11:23:25
    最近工作要用到dilation conv,在此总结一下空洞卷积,并和deconv进行对比。dilation conv首先空洞卷积的目的是为了在扩大感受野的同时,不降低图片分辨率和不引入额外参数及计算量(一般在CNN中扩大感受野都需要...

    最近工作要用到dilation conv,在此总结一下空洞卷积,并和deconv进行对比。

    dilation conv

    首先空洞卷积的目的是为了在扩大感受野的同时,不降低图片分辨率和不引入额外参数及计算量(一般在CNN中扩大感受野都需要使用s>1的conv或者pooling,导致分辨率降低,不利于segmentation。如果使用大卷积核,确实可以达到增大感受野,但是会引入额外的参数及计算量)。

    知乎上关于空洞卷积的前两个回答比较不错,可以参考借鉴。 如何理解空洞卷积(dilated convolution)?

    空洞卷积的feature map size计算:对于K*K的卷积核,rate =r,则扩充后的卷积核size = K+(K-1)*(r-1)。rate可以理解为K*K的卷积核上的一像素点旁边第rate个点是原K*K的卷积核邻近的点,也相当于K*K的卷积核中两个相邻的点中间插入了r-1个点。特别地,对于3*3的卷积核,如果pad = rate,则特征图尺寸大小不改变。

    不同rate的空洞卷积组合,具体的感受野如何获得呢?例如rate =1的3*3卷积(就是普通卷积),后接rate=2的3*3卷积,感受野是7*7.一种理解方法是rate=2的3*3卷积其实相当于5*5卷积,3*3和5*5叠加自然是7*7卷积,总结一个一般性的结论, 对于s=1, a*a的常规卷积和b*b的常规卷积组合相当于(a+b-1)的卷积核(可以从平移的角度思考,参考下图)。从下图中也可以看出,最下面的表示原图,1*1卷积依次在原图上以s=1进行卷积(s一般为1,如果不为1,就会改变特征图尺寸,空洞卷积也就失去作用)得到不同颜色的块,如右边的一行块所示。在这上面进行rate=2的3*3卷积,可以看到每次卷积会用到红色,黄色,绿色三个块,对应到原图紫色区域,刚好是7*7.


    空洞卷积一般应用在segmentation,对于detection也有很大的用处,使用的时候,如果一直使用同一个rate的空洞卷积或者rate存在公约数就会出现 The Gridding Effect问题,简单来说就是一直使用了底层特征图的部分像素点,而忽略了很大一部分像素点

    如下图所示,最上面表示bottom层使用rate=2的空洞卷积,从下面三种情况可以看出,使用2+3或者2+5就不会出现白色的像素点没用上的情况。


    这个问题在图森的文章里面提到过,Understanding Convolution for Semantic Segmentation

    HDC把rate设成锯齿状。DUC用于上采样。这从侧面说明了ASPP的改进地方,ASPP用了平行的几个空洞卷积(rate=6,12,18,24等)。

    deconv

    转置卷积多数用于上采样。转置怎么理解呢?对于一个[3,3]的input,可以视为[1,9],欲得到[2,2]的输出,视为[1,4]。则需要一个[4,9]的权重矩阵,反之,如果从[1,4]得到[1,9],那么需要[9,4]的权重矩阵,也就是之前的转置。个人觉得这只是一个shape的转置,并不是说它的value就是原权重矩阵转置的对应value。 这篇博文关于相关概念的解释比较清楚:deconv

    关于实现,参考github,图片不搬过来了,可以对照着打开看。直接看Transposed conv部分。

    蓝色部分是输入,绿色部分是输出。

    上面一行,s=1。第一个图其实就是标准卷积的逆过程,为什么说没有pading呢,我觉得是为了和标准卷积对应,因为4*4生成2*2不需要pad。后面的half padding其实就是希望输出和输入一样的特征图(关于conv的三种形式:full其实是放大,same是同等输出, valid是downsamping,参考链接),在普通卷积,这样的过程是需要进行pad的,所以此处也写了padding。其实把half padding就是普通卷积的same padding。Arbitrary padding是随机补充,还没太弄懂,有清楚的朋友还望赐教。full padding是希望输出比输入要小,相当于vaild conv,对应于普通卷积的full conv逆过程,所以有了full padding。

    下面一行,有了stride. 对应于标准卷积的s<1.在map中间插入0像素点(不同于dilation conv是skip掉一些像素点),接下来就转化成了s=1的卷积。至于为什么第一张图实际上还是有padding,我是这么理解的:因为填充了0像素点后还不能达到输出,所以就和no stride一样的做法,2*2插完值后变成3*3.但是要想输出为5*5,在s=1的情况下,必须要进行p=2。对应于正向的5*5输出3*3不需要padding,所以此处对应也不用padding.最后一张图,加了个odd,其实这是一个填充,目的为了让所有的map上的点都能用到(图中对应蓝色最右边一列)。参考链接

    总结起来,deconv中的padding是和conv的padding对应,并不是说deconv的padding=0,就真的没有填充;s<1时,先把map中的每个点插入部分0像素(和s有关),然后变成s=1的deconv. odd不是新概念,主要是为了充分利用map上的像素值。


    总起来说,dilation conv是对卷积核进行upsample,deconv是对feature map进行upsample;或者说,dilation conv是skip掉map中的一些元素,而deconv是对map中的元素进行补0操作。





    展开全文
  • Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv) 原文:https://blog.csdn.net/huachao1001/article/details/79131814 反卷积作用:上采样,...
  • conv和deconv解读

    万次阅读 2017-01-03 21:23:50
    首先,要知道caffe里的卷积核都是三维的 在caffe中卷积核是三维的还是二维的?...关于deconv 这个概念很混乱,没有统一的定义,在不同的地方出现,意义却不一样。 上采样的卷积层有很多名字:全卷积(full
  • <p>Key lanenet_loss/inference/decode/deconv_1/deconv_1/kernel not found in checkpoint [[Node: save/RestoreV2 = RestoreV2,%20save/RestoreV2/tensor_names,%20save/RestoreV2/shape_and_slices">dtypes&...
  • 【 MATLAB 】deconv 函数介绍

    千次阅读 2018-10-26 20:27:01
    deconv Deconvolution and polynomial division Syntax [q,r] = deconv(u,v) Description [q,r] = deconv(u,v) 使用长除法将向量v从向量u中解卷积,并返回商q和余数r,使得u = conv(v,q)+ r。 如果u和v是...
  • Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv) 理解:https://www.zhihu.com/question/43609045/answer/130868981 上一篇文章已经介绍过卷积的实现,这篇文章我们学习反...
  • <div><p>I may found a possible memory leak in deconv; <p>I run the code below several times, the memory of my program keeps rising. I used ASAN to test the memory leak, I got a report that the memory ...
  • MATLAB中deconv函数用法

    万次阅读 2017-03-16 14:37:02
    函数 deconv 格式 [q r] = deconv(v,u)%多项式v除以多项式u,返回商多项式q和余多项式r。 注意:v、u、q、r都是按降幂排列的多项式系数向量。
  • deconv的个人理解

    千次阅读 2018-07-25 14:40:04
    对于图像的语义分割,我觉得比较经典文章的基本上的框架是:conv + deconv + (后续的处理模块)。 在conv中,是这样操作的:举例说明 4x4的输入,卷积Kernel为3x3, 没有Padding / Stride, 则输出为2x2。输入矩阵...
  • Deconvolutional Network [deconv] 研究

    千次阅读 2018-03-24 16:46:52
    deconv的用处还挺广的,涉及到 - visualization - pixel-wiseprediction - unsupervised learning 都会用到deconv的结构。比如Deconvolutional Network做图片的unsupervised feature learning,ZF-Net论文中...
  • python_deconv_demo 小型演示如何使测得的ESS信号去分解
  • matlab几个图像恢复的程序代码-deconv_alm.m 主要针对运动模糊和离焦模糊,这是我的硕士课题之一,有兴趣的一起讨论下。
  • matlab几个图像恢复的程序代码-deconv_tuberlin.m 主要针对运动模糊和离焦模糊,这是我的硕士课题之一,有兴趣的一起讨论下。
  • matlab几个图像恢复的程序代码-deconv_sondhi.m 主要针对运动模糊和离焦模糊,这是我的硕士课题之一,有兴趣的一起讨论下。
  • <div><p>The <a href="https://github.com/nyanp/tiny-cnn/tree/master/examples/deconv">deconvolution example</a> pretty much consistently crashes in the end, and sometimes even before the end (but this ...
  • <div><h2>Quantization Method for conv, deconv and fc Layers. <p>Here I want to implement the quanzization on operation in conv, deconv and fc layers. Much quantization method are included in this ...
  • deconv.</li><li>[x] Quantized fully connected layer and pass the tests for q_fully_connected.</li><li>[x] Quantized bias inside other kernels.</li><li>[x] Ensure acceptable accuracy on typical ...
  • deconv理解

    千次阅读 2018-11-16 10:07:08
    近期在看fcn,提到 a natural way to upsample ...不是很懂,deconv是conv的正向与反向的颠倒。 原文网址: https://www.zhihu.com/question/43609045 博主不让复制,我只好贴图了。  
  • deconv layer

    2018-07-05 20:11:33
    上采样的卷积层有很多名字:全卷积(full convolution),网络内上采样( in-network upsampling),微步幅卷积(fractionally-strided convolution),反向...deconv: output = (input - 1) * stride + kernel - 2*pad
  • <div><p><a href="https://github.com/shiba24/3d-unet/blob/master/tensorflow/model.py">tensorflow/models.py</a> script tries to import conv3d and deconv3d wrappers from ...t exist. </p><p>该提问来源于开源...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 472
精华内容 188
关键字:

deconv