keras卷积层_keras实现全卷积神经网络

keras卷积层_keras实现全卷积神经网络分组卷积在pytorch中比较容易实现,只需要在卷积的时候设置group参数即可比如设置分组数为2conv_group=nn.Conv2d(C_in,C_out,kernel_size=3,stride=3,padding=1,groups=2)但是,tensorflow中目前还没有分组卷积,只能自己手动编写分组卷积函数。在编写程序之前大家要先理解分组卷积的形式,也就是对特征图在通道上进行划分,例如设置group=3,对输入特征图通道划分成三组,输出特征图也要划分成3组,再对三组输入输出特

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

分组卷积在pytorch中比较容易实现,只需要在卷积的时候设置group参数即可
比如设置分组数为2

conv_group = nn.Conv2d(C_in,C_out,kernel_size=3,stride=3,padding=1,groups = 2)

Jetbrains全家桶1年46,售后保障稳定

但是,tensorflow中目前还没有分组卷积,只能自己手动编写分组卷积函数。
在编写程序之前大家要先理解分组卷积的形式,也就是对特征图在通道上进行划分,例如设置group=3,对输入特征图通道划分成三组,输出特征图也要划分成3组,再对三组输入输出特征图分别进行卷积。
实现过程如下:
1.获取输入特征图和输出特征图通道数,再结合分组数进行划分
2.对输入特征图的每一组进行单独卷积
3.将每组卷积后的结果进行通道上的拼接
代码如下:

def group_conv(x, filters, kernel, stride, groups):
   
    channel_axis = 1 if K.image_data_format() == 'channels_first' else -1
    in_channels = K.int_shape(x)[channel_axis]#计算输入特征图的通道数
    nb_ig = in_channels // groups#对输入特征图通道进行分组
    nb_og = filters // groups#对输出特征图通道进行分组
    
    gc_list = []
    for i in range(groups):
        if channel_axis == -1:
            x_group = Lambda(lambda z: z[:, :, :, i * nb_ig: (i + 1) * nb_ig])(x)
        else:
            x_group = Lambda(lambda z: z[:, i * nb_ig: (i + 1) * nb_ig, :, :])(x)
        gc_list.append(Conv2D(filters=nb_og, kernel_size=kernel, strides=stride, 
                              padding='same', use_bias=False)(x_group))#对每组特征图进行单独卷积
        
    return Concatenate(axis=channel_axis)(gc_list)#在通道上进行特征图的拼接
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/226858.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • API之FindWindowEx和SendMessage

    API之FindWindowEx和SendMessage最近在VC6.0开发中碰到了两个函数,经过一番搜索查阅,特记录于此。

  • 外部css文件引入失效

    外部css文件引入失效

  • java中byte的用法_nt宫颈长度多少是正常

    java中byte的用法_nt宫颈长度多少是正常1.概念JavaNIOAPI自带的缓冲区类功能相当有限,没有经过优化,使用JDK的ByteBuffer操作更复杂。故而Netty的作者TrustinLee为了实现高效率的网络传输,重新造轮子,Netty中的ByteBuf实际上就相当于JDK中的ByteBuffer,其作用是在Netty中通过Channel传输数据。2.优势可以自定义缓冲类型;通过内置的复合缓冲类型,实现透明的零拷贝(ze…

  • linux下system函数错误返回-1 错误原因NO child processes

    linux下system函数错误返回-1 错误原因NO child processes调用system函数执行一个shell命令,返回-1,错误提示nochildprocesses但system可以执行成功原因是调用system之前有放置忽略SIGCHLD的语句signal(SIGCHLD,SIG_IGN);如果SIGCHLD信号行为被设置为SIG_IGN时,waitpid()函数有可能因为找不到子进程而报ECHILD错误。似乎我们找到了问题的解决方案:在调用s…

  • 职称计算机模块intern,职称计算机考试模块试题.pdf

    职称计算机模块intern,职称计算机考试模块试题.pdf职称计算机考试模块试题职称计算机考试WORD模块试题2008-02-0819:12职称计算机考试,找点题目看看,也不知道是不是就考这些,顺便给大家分享分享.1、新建一word文档,将Windows剪贴板上的内容粘贴到该Word文档中。2、保存当前文档的版本(不输入版本的备注),并设置关闭文档时自动保存版本。3、请用文档结构图显示当前文档,并设置为蓝底白字。4、请将WORD…

  • 《Java编程思想》总结

    《Java编程思想》总结语言实际上是帮助程序员更容易地操作计算机的工具,选择何种语言来编程,是Java还是C++,本质上相当于“选择腾讯视频还是优酷视频来观看电视节目(那么选择汇编语言就是选择了电视机)”。正如腾讯视频是腾讯公司的产品,Java是美国公司Sun的产品。希望读者能明白:语言只是工具。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号