精华内容
下载资源
问答
  • ConvTranspose2d原理,深度网络如何进行上采样?

    万次阅读 多人点赞 2019-01-11 15:53:33
    目前在深度学习中,ConvTranspose2d是其中一个方法。 在DCGAN(Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks)(原文地址)中就是用这个来实现的。 别名: ...

    在生成图像中,我们需要不断的扩大图像的尺寸。
    目前在深度学习中,ConvTranspose2d是其中一个方法。
    在DCGAN(Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks)(原文地址)中就是用这个来实现的。

    别名:
    convTranspose2d 是pytorch里的函数名字,代码文档地址(英文版)
    论文中,可以称为fractionally-strided convolutions, 也有的称为deconvolutions,但是我不建议大家用后一个,因为这个实际操作并不是去卷积。大家只要知道就可以了。

    最后,做个总结,以下本文将会使用两个名字,分别对应代码版和学术论文版,分别是ConvTranspose2d和fractionally-strided convolutions
    看到这里,为了简化说明,我后面把这个名字翻译成逆卷积

    1.逆卷积ConvTranspose2d(fractionally-strided convolutions)是什么?

    解释什么是逆卷积,先得明白什么是卷积。
    先说卷积:对于一个图片A,设定它的高度和宽度分别为Height,Width,通道数为Channels。 然后我们用卷积核(kernel * kernel)去做卷积,(这里设定卷积核为正方形,实际长方形也可以类推,相信我,不会很难),步长为stride(同样的,不区分高宽方向),做padding。卷积后得到B。

    重复上面的话就是利用一个卷积操作将A变成B。

    那么,在这个前提下,逆卷积就是将B变成A

    那么怎么规定卷积核这些参数呢,这些又是什么意思?

    对于卷积操作,我不多说了,这里不做解释。而且我们应该比较清楚如何从输入的图片大小格式等得到新的图片大小,或许有的人熟悉用特征图来代替图片。
    对于逆卷积操作,卷积核的设置就是和卷积操作相同。如:给定一个特征图x,并输入卷积核设置。我们就是想得到一个特征图y经过输入的卷积核进行卷积,然后得到特征图x,这里我们要求的就是特征图y

    写到这里大家应该比较理解我为什么把它翻译成逆卷积了吧。
    如果不懂,也没事,可以看下面的例子。

    举个例子:
    卷积操作
    上面这个是一个卷积操作。
    我们输入的特征图为:x: 44channels_in,channels_in表示通道数
    卷积核设置:无padding, kernel size为3*3, 步长stride 为1,
    输出的特征图为y,2 * 2 * channels_out,channels_out也是通道数。

    逆卷积操作的输入就是特征图y, 卷积核设置同上。要求上面的特征图x。

    这里先给出这个对应逆卷积的说明图。后面给出泛化的说明。

    在这里插入图片描述

    2.怎么求逆卷积ConvTranspose2d(fractionally-strided convolutions)?

    这里我并不想解释理论的推导,我直接说算法怎么实现的。也就是代码中如何实现。

    当给一个特征图a, 以及给定的卷积核设置,我们分为三步进行逆卷积操作:
    第一步:对输入的特征图a进行一些变换,得到新的特征图a’
    第二步:求新的卷积核设置,得到新的卷积核设置,后面都会用右上角加撇点的方式区分
    第三步:用新的卷积核在新的特征图上做常规的卷积,得到的结果就是逆卷积的结果,就是我们要求的结果。

    以下当然就要解释怎么做了。
    在说怎么做之前,我们下规定一下符号,右上角加撇点的为修改之后的:
    特征图a: HeightHeight, WidthWidth
    输入的卷积核: kernel 的size = SizeSize, 步长为StrideStride,padding 就是paddingpadding

    新的特征图:Height=Height+(Stride1)(Height1)Height'=Height+(Stride-1)*(Height-1)WidthWidth同样的。这里说一下这个新的特征图是怎么得到的:我们在输入的特征图基础加上一些东西,专业名词叫做interpolation,也就是插值
    这就涉及到两个问题,插在哪里,插什么。
    插什么?插得就是0。
    插在哪里?在原先高度方向的每两个相邻中间插上"Stride1Stride-1"列0。我们知道对于输入为HeightHeight的特征图来说有Height1Height-1个位置,所以,最终我们的特征图在原先的基础上加上(Stride1)(Height1)(Stride-1)*(Height-1)

    新的卷积核:Stride=1Stride'=1,这个数不变,无论你输入是什么。kernel的sizesize'也不变,=SizeSize, paddingpadding'Sizepadding1Size-padding-1.

    然后,我利用新的卷积核和新的特征图,得到最终的逆卷积结果。
    根据公式可以知道输出的特征图(用输入的符号表示)的大小是多少了,下面我给出简单的推导。

    先给出公式:
    Heightout=(Heightin+2paddingkernelsize)/strides+1Height_{out}=(Height_{in}+2*padding-kernel_{size})/strides+1
    这里补充一句,padding的size只是针对一边的,所以要乘以2.

    带上上面新的卷积核和新的特征图设置情况,可以得到
    (Height+(Stride1)(Height1)+2(Sizepadding1)Size)/1+1(Height+(Stride-1)*(Height-1) +2*(Size-padding-1) - Size)/1+1
    化简可得:(Height1)Stride2padding+Size(Height-1)*Stride-2*padding+Size

    上面这幅图就是pytorch官网给出的计算方法,和这里给出是一样的。当然这里先忽略output_padding是什么。

    有兴趣可以算一下从这个是否满足反向计算的一致性。

    最后,这里给一个例子参考,特别是怎么计算到新的特征图的,尤其是怎么插值(interpolation)。
    在这里插入图片描述
    对图的说明:
    输入特征图A:333*3
    输入卷积核K:kernel为333*3, stride为2, padding为1
    新的特征图A’: 3+(31)(21)=3+2=53 + (3-1)*(2-1) = 3+2 = 5 注意加上padding之后才是7。
    新的卷积核设置K’: kernel不变,stride为1,padding=311=13-1-1=1
    最终结果:(5+23)/1+1=5(5+2-3)/1+1=5

    在这里插入图片描述

    使用逆卷积的注意事项

    从以上来看,我们要特别注意使用逆卷积时的参数设置。
    DCGAN
    上图为DCGAN的generator的生成模型中的结构图。

    对应于DCGAN,我们的设置如下:
    除了从噪声z到第一个特征图(441024)的kernel设置不一样,为(4, 1, 0),其他都一样(4,2, 1),括号中依次表示:核大小,步长stride,padding大小

    再给一个实际的代码例子:(使用pytorch,记住在实行前import必要的模块)
    在这里插入图片描述

    逆卷积和卷积的关系

    为什么可以这样操作来得到逆卷积的结果,我不解释,我也解释不了。
    给出两个条件:
    1.特征图大小要适合。(这一点不解释)
    2.保证同样的连接性。
    什么是同样的连接性?这是指从A到B(AB分别表示卷积前和卷积后的特征图),如果A中一个位置与B中一个位置通过kernel有关系,那么在卷积核逆卷积中有相同的连通。

    卷积和逆卷积是什么关系?(这节内容为新增)

    时间:2020-10-06 18:13:06
    可以参考台湾大学李宏毅老师的视频中关于这一部分的讲解(machine learning 第16课,无监督学习):Youtube地址
    从32:19开始。这里给出一个图。
    在这里插入图片描述

    后记

    看完这些,希望你已经没有想看源码的冲动了。
    如果是这样的话,不妨点个赞吧。

    为何要点赞?

    如果本文解决了你的困惑,不妨点个赞鼓励一下。
    不管你信不信,也不管你同不同意,实际上,你的每一次点赞都标志着你自身的进步。而打赏乃是点赞的高级形式
    曾经有无数个点赞的机会,但是我都没有好好珍惜,假如时光可以倒流,我一定为他们也为自己点赞。

    展开全文
  • nn.Conv2d卷积

    万次阅读 多人点赞 2019-03-09 14:52:42
    一、nn.Conv2d nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)) 参数: in_channel:输入数据的通道数,例RGB图片通道数为3; out_channel: 输.....

    学习torch框架中的卷积神经网络,对此进行记录

    一、nn.Conv1d

    一维的卷积能处理多维数据

    1. nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))
      参数:
        in_channel: 输入数据的通道数,例RGB图片通道数为3;
        out_channel: 输出数据的通道数,这个根据模型调整;
        kennel_size: 卷积核大小,可以是int,或tuple;kennel_size=2,意味着卷积大小2, kennel_size=(2,3),意味着卷积在第一维度大小为2,在第二维度大小为3;
        stride:步长,默认为1,与kennel_size类似,stride=2,意味在所有维度步长为2, stride=(2,3),意味着在第一维度步长为2,意味着在第二维度步长为3;
        padding: 零填充
    2. 例子
    import torch
    import torch.nn as nn
    import torch.nn.functional as F
    
    x = torch.randn(10, 16, 30, 32, 34)
    # batch, channel , height , width
    print(x.shape)
    class Net_1D(nn.Module):
        def __init__(self):
            super(Net_1D, self).__init__()
            self.layers = nn.Sequential(
                nn.Conv1d(in_channels=16, out_channels=16, kernel_size=(3, 2, 2), stride=(2, 2, 1), padding=[2,2,2]),
                nn.ReLU()
            )
        def forward(self, x):
            output = self.layers(x)
            log_probs = F.log_softmax(output, dim=1)
            return  log_probs
    
    n = Net_1D()  # in_channel,out_channel,kennel,
    print(n)
    y = n(x)
    print(y.shape)
    

    结果:

    torch.Size([10, 16, 30, 32, 34])
    Net_1D(
      (layers): Sequential(
        (0): Conv1d(16, 16, kernel_size=(3, 2, 2), stride=(2, 2, 1), padding=[2, 2, 2])
        (1): ReLU()
      )
    )
    torch.Size([10, 16, 16, 18, 37])
    
    1. 卷积计算
      d = (d - kennel_size + 2 * padding) / stride + 1
      x = ([10,16,30,32,34]),其中第一维度:30,第一维度,第二维度:32,第三维度:34,对于卷积核长分别是;对于步长分别是第一维度:2,第二维度:,2,第三维度:1;对于padding分别是:第一维度:2,第二维度:,2,第三维度:2;
      d1 = (30 - 3 + 22)/ 2 +1 = 31/2 +1 = 15+1 =16
      d2 = (32 - 2 + 2
      2)/ 2 +1 = 34/2 +1 = 17+1 =18
      d3 = (34 - 2 + 2*2)/ 1 +1 = 36/1 +1 = 36+1 =37
      batch = 10, out_channel = 16

    故:y = [10, 16, 16, 18, 37]

    二、nn.Conv2d

    二维卷积可以处理二维数据

    1. nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))
      参数:
        in_channel: 输入数据的通道数,例RGB图片通道数为3;
        out_channel: 输出数据的通道数,这个根据模型调整;
        kennel_size: 卷积核大小,可以是int,或tuple;kennel_size=2,意味着卷积大小(2,2), kennel_size=(2,3),意味着卷积大小(2,3)即非正方形卷积
        stride:步长,默认为1,与kennel_size类似,stride=2,意味着步长上下左右扫描皆为2, stride=(2,3),左右扫描步长为2,上下为3;
        padding: 零填充
    2. 例子
      输入数据X[10,16,30,32],其分别代表:10组数据,通道数为16,高度为30,宽为32
    import torch
    import torch.nn as nn
    
    x = torch.randn(10, 16, 30, 32) # batch, channel , height , width
    print(x.shape)
    m = nn.Conv2d(16, 33, (3, 2), (2,1))  # in_channel, out_channel ,kennel_size,stride
    print(m)
    y = m(x)
    print(y.shape)
    

    结果:

    torch.Size([10, 16, 30, 32])
    Conv2d(16, 33, kernel_size=(3, 2), stride=(2, 1))
    torch.Size([10, 33, 14, 31])
    

    3.卷积计算过程:
    h/w = (h/w - kennel_size + 2padding) / stride + 1
    x = ([10,16,30,32]),其中h=30,w=32,对于卷积核长分别是 h:3,w:2 ;对于步长分别是h:2,w:1;padding默认0;
    h = (30 - 3 + 2
    0)/ 2 +1 = 27/2 +1 = 13+1 =14
    w =(32 - 2 + 2*0)/ 1 +1 = 30/1 +1 = 30+1 =31
    batch = 10, out_channel = 33
    故: y= ([10, 33, 14, 31])

    展开全文
  • 1,Graphics2D 类扩展 Graphics 类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。 2,Rectangle2D 类描述通过位置 (x,y) 和尺寸 ...

    1,Graphics2D 类扩展 Graphics 类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。

    2,Rectangle2D 类描述通过位置 (x,y) 和尺寸 (w x h) 定义的矩形。此类是所有存储 2D 矩形的对象的惟一抽象超类。坐标的实际存储表示形式由子类决定。

    3,Ellipse2D 类描述窗体矩形定义的椭圆。 此类是所有存储 2D 椭圆的对象的惟一抽象超类。坐标的实际存储表示形式由子类决定。

    4,Line2D 表示 (x,y) 坐标空间中的线段。像 Java 2D API 的所有类一样,此类使用称为用户空间 的默认坐标系,其中 Y 轴的值向下增大,X 轴的值向右增大。此类是所有存储 2D 线段的对象的惟一抽象超类。坐标的实际存储表示形式由子类决定

     

     

    https://zhidao.baidu.com/question/48721142.html

    展开全文
  • DepthwiseConv2D和Conv2D详解

    千次阅读 2020-08-17 15:52:49
    depthwise_conv2d和conv2d的不同之处在于conv2d在每一深度上卷积,然后求和,depthwise_conv2d卷积,不求和。 [https://www.cnblogs.com/itmorn/p/11250371.html] depthwise_conv2d 如下张量x和卷积核K进行depthwise...

    depthwise_conv2d和conv2d的不同之处在于conv2d在每一深度上卷积,然后求和,depthwise_conv2d卷积,不求和。
    [https://www.cnblogs.com/itmorn/p/11250371.html]

    1x1卷积降维是每个通道长宽不变,维数变为卷积核数,深度方向的1x1卷积应能实现深度方向multiplication, 也叫channel-wise mutiplication.

    depthwise_conv2d

    如下张量x和卷积核K进行depthwise_conv2d卷积
    在这里插入图片描述
    在这里插入图片描述
    结果为:
    在这里插入图片描述

    import tensorflow as tf
    
    # [batch, in_height, in_width, in_channels]
    input =tf.reshape( tf.constant([2,5,3,3,8,2,6,1,1,2,5,4,7,9,2,3,-1,3], tf.float32),[1,3,3,2])
    
    # [filter_height, filter_width, in_channels, out_channels]
    kernel = tf.reshape(tf.constant([3,1,-2,2,-1,-3,4,5], tf.float32),[2,2,2,1])
    
    print(tf.Session().run(tf.nn.depthwise_conv2d(input,kernel,[1,1,1,1],"VALID")))
    [[[[ -2.  18.]    此行为同一位置不同通道卷积值
       [ 12.  21.]]
    
      [[ 17.  -7.]
       [-13.  16.]]]]
    

    单个张量与多个卷积核在深度上分别卷积
    在这里插入图片描述
    维数为 [1,卷积后行数,卷积后列数,kernel数x输入通道数]

    Depthwise Convolution
    同样是上述例子,一个大小为64×64像素、三通道彩色图片首先经过第一次卷积运算,不同之处在于此次的卷积完全是在二维平面内进行,且Filter的数量与上一层的Depth相同。所以一个三通道的图像经过运算后生成了3个Feature map,如下图所示。
    在这里插入图片描述

    conv2d

    如何理解CNN中的卷积? - 知乎 https://zhuanlan.zhihu.com/p/35083956
    在这里插入图片描述
    解析:图中input 773中,7*7代表图像的像素/长宽,3代表R、G、B三个颜色通道,可以看到周边有填充0; 有两个卷积核Filter w0、Filter w1,每个filter对应每个通道有一组w权重;一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置的最终结果;每个filter的输出是各个通道的汇总;输出的个数与filter个数相同。所以最右边能得到两个不同的输出。

    1 的计算过程:

    第一个通道和对应权重的结果:01+01+0*(-1)+0*(-1)+00+11+0*(-1)+0*(-1)+10 = 1
    第二个通道和对应权重的结果:0
    (-1)+00+0(-1)+00+10+1*(-1)+01+0(-1)+20 = -1
    第三个通道和对应权重的结果:0
    0+01+00+01+20+01+00+0*(-1)+0*0 = 0

    偏置:1

    1+(-1)+ 0 + 1 = 1

    具体卷积计算:
    [TensorFlow卷积函数tf.nn.conv2d - 简书 https://www.jianshu.com/p/c72af2ff5393]

    Pointwise Convolution
    Pointwise Convolution的运算与常规卷积运算非常相似,不同之处在于卷积核的尺寸为 1×1×M,M为上一层的depth。所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。有几个Filter就有几个Feature map。如下图所示。

    在这里插入图片描述

    在这里插入图片描述
    tf.layers.separable_conv2d函数
    tf.layers.separable_conv2d(
    inputs,
    filters,
    kernel_size,
    strides=(1, 1),
    padding=‘valid’,
    data_format=‘channels_last’,
    dilation_rate=(1, 1),
    depth_multiplier=1,
    activation=None,
    use_bias=True,
    depthwise_initializer=None,
    pointwise_initializer=None,
    bias_initializer=tf.zeros_initializer(),
    depthwise_regularizer=None,
    pointwise_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    depthwise_constraint=None,
    pointwise_constraint=None,
    bias_constraint=None,
    trainable=True,
    name=None,
    reuse=None
    )

    filters Integer, the dimensionality of the output space (i.e. the number of output filters in the convolution).
    kernel_size An integer or tuple/list of 2 integers, specifying the height and width of the 2D convolution window. Can be a single integer to specify the same value for all spatial dimensions.
    strides An integer or tuple/list of 2 integers, specifying the strides of the convolution along the height and width. Can be a single integer to specify the same value for all spatial dimensions. Specifying any stride value != 1 is incompatible with specifying any dilation_rate value != 1.
    padding one of “valid” or “same” (case-insensitive).
    data_format A string, one of channels_last (default) or channels_first. The ordering of the dimensions in the inputs. channels_last corresponds to inputs with shape (batch_size, height, width, channels) while channels_first corresponds to inputs with shape (batch_size, channels, height, width). It defaults to the image_data_format value found in your Keras config file at ~/.keras/keras.json. If you never set it, then it will be “channels_last”.
    dilation_rate An integer or tuple/list of 2 integers, specifying the dilation rate to use for dilated convolution. Currently, specifying any dilation_rate value != 1 is incompatible with specifying any strides value != 1.
    depth_multiplier The number of depthwise convolution output channels for each input channel. The total number of depthwise convolution output channels will be equal to filters_in * depth_multiplier.
    activation Activation function to use. If you don’t specify anything, no activation is applied ( see keras.activations).
    use_bias Boolean, whether the layer uses a bias vector.
    depthwise_initializer Initializer for the depthwise kernel matrix ( see keras.initializers).
    pointwise_initializer Initializer for the pointwise kernel matrix ( see keras.initializers).
    bias_initializer Initializer for the bias vector ( see keras.initializers).
    depthwise_regularizer Regularizer function applied to the depthwise kernel matrix (see keras.regularizers).
    pointwise_regularizer Regularizer function applied to the pointwise kernel matrix (see keras.regularizers).
    bias_regularizer Regularizer function applied to the bias vector ( see keras.regularizers).
    activity_regularizer Regularizer function applied to the output of the layer (its “activation”) ( see keras.regularizers).
    depthwise_constraint Constraint function applied to the depthwise kernel matrix ( see keras.constraints).
    pointwise_constraint Constraint function applied to the pointwise kernel matrix ( see keras.constraints).
    bias_constraint Constraint function applied to the bias vector ( see keras.constraints).

    展开全文
  • 【PyTorch学习笔记】17:2D卷积,nn.Conv2d和F.conv2d

    万次阅读 多人点赞 2019-04-05 10:42:16
    2D卷积很适合处理图像输入。以之前的MNIST为例,在使用MLP时,为方便全连接层的处理,将28乘28的输入flatten成了784维的向量,这样就要有784个权值。而使用了2D卷积以后,假设使用3乘3的卷积核,那么每次的输入都是...
  • Unity 2D光照(2D Light)和阴影(Shadow Caster 2D

    千次阅读 多人点赞 2020-03-25 18:11:21
    2d animation https://docs.unity3d.com/Packages/com.unity.2d.animation@3.1/manual/index.html 2d场景的光照效果 https://www.youtube.com/watch?v=F5l8vP90EvU
  • keras:Convolution2D与Conv2D

    千次阅读 2020-07-08 11:18:05
    区别:Convolution2D = Conv2D 参考来源:源文件 github.keras.layder.convolutional # Aliases Convolution1D = Conv1D Convolution2D = Conv2D Convolution3D = Conv3D SeparableConvolution1D = SeparableConv1D ...
  • 2D格斗游戏,C语言实现

    千次下载 热门讨论 2013-11-16 13:21:15
    一个类似于《热血格斗》的2D格斗游戏,使用C语言实现,内附源代码。
  • 使用Cocos2d-x 开发3D游戏

    万人学习 2015-08-12 14:34:10
    由CSDN知名博客讲师火云红孩儿创建的火云开发课堂正式开始讲授新的Cocos2d-x v3.7版本中的3D引擎功能模块!
  • cvGet2D和cvGetReal2D

    千次阅读 2017-08-31 15:43:07
    如果图像是彩色图采用cvGet2D 如果图像是灰度图像采用cvGetReal2D 但是如果彩色图像,则不能采用cvGetReal2D 但是灰度图像可以使用cvGet2D 差别比较细微 尤其是其进行遍历像素获得像素值时,一定要注意 for...
  • 2D-2D:对极约束

    千次阅读 多人点赞 2019-05-02 19:38:54
    2D-2D:对极约束1. 对极约束1.1 物理意义1.2 数学推导2 尺度不确定性3 三角测量3.1 什么是三角测量?3.2 三角测量的数学表达 上一篇博客记录了3D-2D:PnP算法,本篇博客记录一下2D-2D:对极约束算法,并简单谈一下...
  • PyTorch: Conv2d and ConvTranspose2d

    万次阅读 2018-07-15 12:34:55
    ConvTranspose2d 实现的是 Conv2d 的逆过程,也就是将一张 m×mm×mm \times m 的图片,upsampling 到 n×nn×nn \times n,这里 n>mn>mn > m。 ConvTranspose2d 的实现...
  • conv2d

    千次阅读 2018-01-15 13:14:42
    在查看代码的时候,看到有代码用到卷积层是tf.nn.conv2d,但是也有的使用的卷积层是tf.contrib.slim.conv2d,这两个函数调用的卷积层是否一致,在查看了API的文档,以及slim.conv2d的源码后,做如下总结: ...
  • Shader2D: 一些2D效果的Shader实现

    万次阅读 多人点赞 2017-04-09 01:59:37
    Shader2D: 一些2D效果的Shader实现 包括:模糊,锐化,圆形裁剪,正六边形裁剪,圆角,UV动画,百叶窗,马赛克,浮雕,铅笔画,水彩画,灰化,老照片,饱和度,HDR,内发光,外发光,扭曲,旋涡,波浪,水滴散开等
  • Cocos2d-x Cocos2d-JS Cocos2d-lua概述

    千次阅读 2016-08-23 16:53:18
    Cocos2d-x Cocos2d-JS Cocos2d-lua概述
  • Unity2018新功能之2D Animation2D动画

    万次阅读 2018-07-21 15:21:49
    新版本中引入不少2D的新功能,我们打开资源包管理器,可以看到2D Animation,2D IK,2D Pixel Perfect,2D SpriteShape等等。 我们先来讲讲2D Animation的功能。 2D Animation的安装 点击菜单Window > ...
  • Class Conv2D:2D卷积层,如图像上的空间卷积 该层创建卷积核,该卷积核与层的输入卷积(实际上是交叉相关)以产生输出张量。 如果use_bias为True(并且提供了bias_initializer),则会创建偏置向量并将其添加到输出...
  • Unity2D骨骼动画 2D Animation+IK入门

    千次阅读 2020-04-27 11:36:31
    最近想学习2D动画,先学学怎么搞资源,我找了b站的一个简单教程——2D Animationd的学习,这篇文章作为一个小笔记 绑定骨骼: 插件:2D Animation 作用:在2D场景中做角色的骨骼动画 用了这个插件,就...
  • Live2d vue 插件 将live2d引入vue工程 在网页上添加live2d模型 前面的废话: Live2d火过一阵,因为当我搜索“live2d 添加到网页上“的时候可以看到很多宅友已经给自己的博客首页加上了live2d看板娘并且发了博客...
  • Unity 2D 入门

    万次阅读 多人点赞 2017-07-14 13:34:43
    原文:Introduction to Unity 2D 作者:Sean Duffy 译者:kmyhy 3/15/17 更新说明: 升级至 Unity 5.5。Unity 是一个非常流行和强大的游戏引擎,它支持众多的平台和设备。尽管 3D 游戏最近火热,大部分手机游戏、...
  • cocos2d-x box2d 入门

    千次阅读 2014-03-04 16:26:15
    天天飞翔,物理特性用了box2d来做的。关于box2d的入门教程网上有很多,推荐官方手册,中文版,地址。我不再做重复介绍,稍微写点自己理解的东西。 cocos2d-x可以和box2d的C++版完美融合,集成起来很方便。 #...
  • CSS3 2D转换 transform

    千次阅读 2021-03-16 14:46:45
    文章目录一、2D转换 transform1.1 2D是什么?二、translate 移动2.1 语法2.2 特点 一、2D转换 transform 转换( transform) 是CS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果。 转换( transform)...
  • Cocos2D

    千次阅读 2015-07-30 15:02:26
    cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。 Cocos2D也拥有几个主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社区...
  • cocos2d-x接入live2d3.0学习

    千次阅读 2018-12-25 12:54:51
    1. cocos2d-x接入live2d3.0学习 live2d3.0的sdk Cubism SDK for Native https://live2d.github.io/ cocos2d-x 3.16 https://cocos2d-x.org/download/version 2. 参考 .\cocos2d-x-3.16\README.md安装运行cocos2d cd...
  • 2D物体识别方法——LINE-2D

    千次阅读 2018-08-04 16:14:36
    line-2D是line-mod中的一个子模块,把line-mod的3D模式剔除,即只用2D图像制作模板,进行物体匹配就是line-2d,该方法的基本思想是根据图像的轮廓和梯度信息,通过经典的相似度计算公式(1)计算相似度进行的模板...
  • iOS 2D绘图详解(Quartz 2D)之Bitmap

    千次阅读 2015-11-03 13:53:32
    原创Blog,转载请注明出处 ...我的stackoverflow前五篇基础博客路径 iOS 2D绘图详解(Quartz 2D)之概述 iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,...iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip
  • 【题目】keras中的深度可分离卷积SeparableConv2D与DepthwiseConv2D 概述 keras中的深度可分离卷积有SeparableConv2D与c两种, 其中SeparableConv2D实现整个深度分离卷积过程,即深度方向的空间卷积 (分别作用于...
  • cocos2d-x box2d 开发环境

    千次阅读 2014-03-06 17:19:05
    原生的box2d是用C++写的,但由于这个引擎太牛逼的缘故,被移植到了多种语言平台,有flash、Java、js、C#、python等。由于我用cocos2d-x开发游戏,所以我们学习C++版的,先搭好box2d的环境。 box2d的最新版是...
  • Graphics2D & Shape - 绘制2D图形

    千次阅读 2017-09-14 21:32:51
    Graphics2D类包含绘制直线,矩形,椭圆等方法 ...Component的paintComponent方法会自动获取一个Graphics2D对象,但是参数列表定义的是Graphics对象,通过强转来使用 ...Graphics2D g2d=(Graphics2D)g
  • Cocos2d-x 之贴图 Texture2D

    千次阅读 2017-07-14 10:21:01
    Texture2D上一节我们介绍了cocos2d-x中的精灵对象sprite,这一节我们再介绍一下另一个跟显示有很大关系的对象,贴图对象Texture2D。 Texture2D有四种创建方式,从精灵对象得到贴图,从精灵帧对象得到贴图,从贴图...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 212,946
精华内容 85,178
关键字:

2d