深度学习
一、卷积


做卷积的时候,输入3通道那一个卷积核也要RGB三通道。一个卷积核和输入图层做点乘计算,计算完后再把RGB三通道加合成一个矩阵,这样有几个卷积核最后就有这样几个矩阵。
对于D通道图像的各通道而言,是在每个通道上分别执行二维卷积,然后将D个通道加起来,得到该位置的二维卷积输出,对于RGB三通道图像而言,就是在R,G,B三个通道上分别使用对应的每个通道上的kernel_size*kernel_size大小的核去卷积每个通道上的W*H的图像,然后将三个通道卷积得到的输出相加,得到二维卷积输出结果。
pytorch里卷积的操作
import torch import torch.nn as nn layer = nn.Conv2d(in_channels=1,out_channels=3,kernel_size=3,stride=1,padding=0) x = torch.rand(5,1,28,28) out = layer(x) print(out.shape) print(layer.weight.shape,layer.bias.shape)
x第一个5表示5个图片,1表示一个通道,28*28表示图片大小。
layer的输入就是前一层的输出通道,kernel_size就是卷积核大小。
weight的shape,第一个是out_channels,第二个参数是in_channels。
卷积的可视化:https://cbovar.github.io/ConvNetDraw/
二、循环神经网络

上图中每一个箭头上都会有一个参数W,输出的y不一定等于a,他相当于把a作为一个输入变量又做了一个激活操作
$W_{aa}$的维度就是hidden_size也就是神经元的数量。$W_{ax}$的维度就是[hidden_size,input_size]和输入数据做矩阵相乘

Elman network就是指现在一般说的RNN(包括LSTM、GRU等等)。这
三、神经网络
Normalization层的示意图,在通过激活函数前做个归一化,这样可以使得激活的时候数据分布在0附近,这样类似sigmoid这样的函数梯度不至于太大太小

浙公网安备 33010602011771号