C/C++教程

CNN与视觉相关项目

本文主要是介绍CNN与视觉相关项目,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

图片出至:https://blog.csdn.net/dcxhun3/article/details/46878999

CNN的特点:通过感受野减少了神经网络巡的参数。

   nn.Conv2d(in_channels=3,out_channels=96,kernel_size=11,stride=4,padding=2)

in_channels=3:表示的是输入的通道数
out_channels=96:表示的是输出的通道数
kernel_size=12:表示卷积核的大小是12x12的
stride=4:表示的是步长为4,
padding=2:表示的是填充值的大小为2,也就是上面的P, P=2

 N=(W-F+2P)/S+1    N为输出大小 =( 输入大小-卷积核大小+2倍填充值大小)/ 步长 +1

这个可以这么理解,如一个5x5大小的输入,你用一个3x3的卷积核,那么输出3x3在上面框一圈,如果每次能走1也就能向右或者向下走个2步长。5-3+1 = 3 输出就是3x3.

这么走太简单了而且越走越小。所以我们还要加一个padding,

 

 如果想要输入输出相同, padding = (过滤器-1)/2   所以过滤器多是奇数。

加上了stride,感受野一次要走stride步,计算起来就是上面的那个公式了。

输出大小 =( 输入大小-卷积核大小+2倍填充值大小)/ 步长 +1

输出大小 =  输入的大小,减去第一个卷积核的长度,加上填充值上下填充的长度,然后将这些除以步长。最后加上1是初始感受野位置的1.很清楚。

参考:https://zhuanlan.zhihu.com/p/62760780

 

我们从这个NetV1来进行具体分析一下:

ef NetV1():
    state_shape, action_dim = [80, 80, 4], 2
    actions = Input([action_dim])
    state = Input(state_shape)

    x = Conv2D(32, kernel_size=8, strides=4, padding="same")(state)
    x = Activation("relu")(x)
    x = MaxPool2D(pool_size=2)(x)

    x = Conv2D(64, kernel_size=4, strides=2, padding="same")(x)    #padding = 
    x = Activation('relu')(x)

    x = Conv2D(64, kernel_size=3, strides=1, padding="same")(x)
    x = Activation('relu')(x)

    x = Flatten()(x)
    x = Dense(512)(x)
    x = Activation('relu')(x)

    out1 = Dense(action_dim)(x)

    out2 = Dot(-1)([actions, out1])
    model = keras.Model([state, actions], out2)
    optimizer = keras.optimizers.Adam(1e-6)
    # optimizer = keras.optimizers.SGD(lr=1e-5, decay=1e-6, momentum=0.9, nesterov=True)
    loss = keras.losses.mse
    model.compile(optimizer=optimizer, loss=loss)
    model.summary()
    return model

 

padding="valid"   不进行填充,不满了就舍弃。
padding=“same”    用0进行填充
maxpool           最大池化层,压缩数据和参数的量,减小过拟合。默认应该都是2x2 步长为2 也就是压缩一半的大小。
dense        全连接层,参数为神经元节点数。
input        用来实例化一个keras张量
dot         返回两个数组的点积
model.compile    告诉模型优化器和损失的评判标准
model.summary   输出模型的参数情况
这篇关于CNN与视觉相关项目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!