tensorflow2实现vnet

article/2025/9/25 3:56:48

没有在网上查到tensorflow2实现的vnet网络结构,自己写了一个,供自己和大家参考。

 

import warnings
warnings.filterwarnings("ignore")
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'from tensorflow.keras.layers import (Conv3D,PReLU,Input,Concatenate,Conv3DTranspose,)
from tensorflow.keras.models import Modeldef GetVnet(num_classes=2):inputs = Input(shape=(128,128,64,1),name='vnet_input')conv1 = Conv3D(16,5,padding='same',name='conv1')(inputs)conv1 = PReLU(name='conv1_prelu')(conv1) # activationconcat1 = Concatenate(name='concat1')([inputs,conv1])down_conv1 = Conv3D(32,2,2,name='down_conv_1')(concat1)down_conv1 = PReLU(name='down_conv1_prelu')(down_conv1)conv2_1 = Conv3D(32,5,padding='same',name='conv2_1')(down_conv1)conv2_1 = PReLU(name='conv2_1_prelu')(conv2_1)conv2_2 = Conv3D(32,5,padding='same',name='conv2_2')(conv2_1)conv2_2 = PReLU(name='conv2_2_prelu')(conv2_2)concat2 = Concatenate(name='concat2')([down_conv1,conv2_2])down_conv2 = Conv3D(64,2,2,name='down_conv2')(concat2)down_conv2 = PReLU(name='down_conv2_prelu')(down_conv2)conv3_1 = Conv3D(64,5,padding='same',name='conv3_1')(down_conv2)conv3_1 = PReLU(name='conv3_1_prelu')(conv3_1)conv3_2 = Conv3D(64,5,padding='same',name='conv3_2')(conv3_1)conv3_2 = PReLU(name='conv3_2_prelu')(conv3_2)conv3_3 = Conv3D(64,5,padding='same',name='conv3_3')(conv3_2)conv3_3 = PReLU(name='conv3_3_prelu')(conv3_3)concat3 = Concatenate(name='concat3')([conv3_3,down_conv2])down_conv3 = Conv3D(128,2,2,name='down_conv3')(concat3)down_conv3 = PReLU(name='down_conv3_prelu')(down_conv3)conv4_1 = Conv3D(128,5,padding='same',name='conv4_1')(down_conv3)conv4_1 = PReLU(name='conv4_1_prelu')(conv4_1)conv4_2 = Conv3D(128,5,padding='same',name='conv4_2')(conv4_1)conv4_2 = PReLU(name='conv4_2_prelu')(conv4_2)conv4_3 = Conv3D(128,5,padding='same',name='conv4_3')(conv4_2)conv4_3 = PReLU(name='conv4_3_prelu')(conv4_3)concat4 = Concatenate(name='concat4')([down_conv3,conv4_3])down_conv4 = Conv3D(256,2,2,name='down_conv4')(concat4)down_conv4 = PReLU(name='down_conv4_prelu')(down_conv4)conv5_1 = Conv3D(256,5,padding='same',name='conv5_1')(down_conv4)conv5_1 = PReLU(name='conv5_1_prelu')(conv5_1)conv5_2 = Conv3D(256,5,padding='same',name='conv5_2')(conv5_1)conv5_2 = PReLU(name='conv5_2_prelu')(conv5_2)conv5_3 = Conv3D(256,5,padding='same',name='conv5_3')(conv5_2)conv5_3 = PReLU(name='conv5_3_prelu')(conv5_3)concat5 = Concatenate(name='concat5')([down_conv4,conv5_3])up_conv5 = Conv3DTranspose(256,2,2,name='up_conv5')(concat5)up_conv5 = PReLU(name='up_conv5_prelu')(up_conv5)conv6 = Concatenate(name='conv6')([up_conv5,concat4])conv6_1 = Conv3D(256,5,padding='same',name='conv6_1')(conv6)conv6_1 = PReLU(name='conv6_1_prelu')(conv6_1)conv6_2 = Conv3D(256,5,padding='same',name='conv6_2')(conv6_1)conv6_2 = PReLU(name='conv6_2_prelu')(conv6_2)conv6_3 = Conv3D(256,5,padding='same',name='conv6_3')(conv6_2)conv6_3 = PReLU(name='conv6_3_prelu')(conv6_3)concat6 = Concatenate(name='concat6')([up_conv5,conv6_3])up_conv6 = Conv3DTranspose(128,2,2,name='up_conv6')(concat6)up_conv6 = PReLU(name='up_conv6_prelu')(up_conv6)conv7 = Concatenate(name='conv7')([up_conv6,concat3])""" 3次卷积 """for i in range(1,4):conv7 = Conv3D(128,5,padding='same',name=f'conv7_{i}')(conv7)conv7 = PReLU(name=f'conv7_{i}_prelu')(conv7)concat7 = Concatenate(name='concat7')([up_conv6,conv7])up_conv7 = Conv3DTranspose(64,2,2,name='up_conv7')(concat7)up_conv7 = PReLU(name='up_conv7_prelu')(up_conv7)conv8 = Concatenate(name='conv8')([up_conv7,concat2])""" 2次卷积 """for i in range(1,3):conv8 = Conv3D(64,5,padding='same',name=f'conv8_{i}')(conv8)conv8 = PReLU(name=f'conv8_{i}_prelu')(conv8)concat8 = Concatenate(name='concat8')([conv8,up_conv7])up_conv8 = Conv3DTranspose(32,2,2,name='up_conv8')(concat8)up_conv8 = PReLU(name='up_conv8_prelu')(up_conv8)conv9 = Concatenate(name='conv9')([up_conv8,concat1])conv9_1 = Conv3D(32,5,padding='same',name='conv9_1')(conv9)concat9 = Concatenate(name='concat9')([conv9_1,up_conv8])conv10 = Conv3D(num_classes,1,1,name='out',activation='softmax')(concat9)model = Model(inputs=inputs,outputs=conv10,name='myTf2_vnet')return modelif __name__ == '__main__':model = GetVnet()model.summary()

输出:

D:\program\miniconda\envs\py38_tf2\python.exe E:/paper/nets/vnet/Vnet.py
Model: "myTf2_vnet"
__________________________________________________________________________________________________Layer (type)                   Output Shape         Param #     Connected to                     
==================================================================================================vnet_input (InputLayer)        [(None, 128, 128, 6  0           []                               4, 1)]                                                            conv1 (Conv3D)                 (None, 128, 128, 64  2016        ['vnet_input[0][0]']             , 16)                                                             conv1_prelu (PReLU)            (None, 128, 128, 64  16777216    ['conv1[0][0]']                  , 16)                                                             concat1 (Concatenate)          (None, 128, 128, 64  0           ['vnet_input[0][0]',             , 17)                             'conv1_prelu[0][0]']            down_conv_1 (Conv3D)           (None, 64, 64, 32,   4384        ['concat1[0][0]']                32)                                                               down_conv1_prelu (PReLU)       (None, 64, 64, 32,   4194304     ['down_conv_1[0][0]']            32)                                                               conv2_1 (Conv3D)               (None, 64, 64, 32,   128032      ['down_conv1_prelu[0][0]']       32)                                                               conv2_1_prelu (PReLU)          (None, 64, 64, 32,   4194304     ['conv2_1[0][0]']                32)                                                               conv2_2 (Conv3D)               (None, 64, 64, 32,   128032      ['conv2_1_prelu[0][0]']          32)                                                               conv2_2_prelu (PReLU)          (None, 64, 64, 32,   4194304     ['conv2_2[0][0]']                32)                                                               concat2 (Concatenate)          (None, 64, 64, 32,   0           ['down_conv1_prelu[0][0]',       64)                               'conv2_2_prelu[0][0]']          down_conv2 (Conv3D)            (None, 32, 32, 16,   32832       ['concat2[0][0]']                64)                                                               down_conv2_prelu (PReLU)       (None, 32, 32, 16,   1048576     ['down_conv2[0][0]']             64)                                                               conv3_1 (Conv3D)               (None, 32, 32, 16,   512064      ['down_conv2_prelu[0][0]']       64)                                                               conv3_1_prelu (PReLU)          (None, 32, 32, 16,   1048576     ['conv3_1[0][0]']                64)                                                               conv3_2 (Conv3D)               (None, 32, 32, 16,   512064      ['conv3_1_prelu[0][0]']          64)                                                               conv3_2_prelu (PReLU)          (None, 32, 32, 16,   1048576     ['conv3_2[0][0]']                64)                                                               conv3_3 (Conv3D)               (None, 32, 32, 16,   512064      ['conv3_2_prelu[0][0]']          64)                                                               conv3_3_prelu (PReLU)          (None, 32, 32, 16,   1048576     ['conv3_3[0][0]']                64)                                                               concat3 (Concatenate)          (None, 32, 32, 16,   0           ['conv3_3_prelu[0][0]',          128)                              'down_conv2_prelu[0][0]']       down_conv3 (Conv3D)            (None, 16, 16, 8, 1  131200      ['concat3[0][0]']                28)                                                               down_conv3_prelu (PReLU)       (None, 16, 16, 8, 1  262144      ['down_conv3[0][0]']             28)                                                               conv4_1 (Conv3D)               (None, 16, 16, 8, 1  2048128     ['down_conv3_prelu[0][0]']       28)                                                               conv4_1_prelu (PReLU)          (None, 16, 16, 8, 1  262144      ['conv4_1[0][0]']                28)                                                               conv4_2 (Conv3D)               (None, 16, 16, 8, 1  2048128     ['conv4_1_prelu[0][0]']          28)                                                               conv4_2_prelu (PReLU)          (None, 16, 16, 8, 1  262144      ['conv4_2[0][0]']                28)                                                               conv4_3 (Conv3D)               (None, 16, 16, 8, 1  2048128     ['conv4_2_prelu[0][0]']          28)                                                               conv4_3_prelu (PReLU)          (None, 16, 16, 8, 1  262144      ['conv4_3[0][0]']                28)                                                               concat4 (Concatenate)          (None, 16, 16, 8, 2  0           ['down_conv3_prelu[0][0]',       56)                               'conv4_3_prelu[0][0]']          down_conv4 (Conv3D)            (None, 8, 8, 4, 256  524544      ['concat4[0][0]']                )                                                                 down_conv4_prelu (PReLU)       (None, 8, 8, 4, 256  65536       ['down_conv4[0][0]']             )                                                                 conv5_1 (Conv3D)               (None, 8, 8, 4, 256  8192256     ['down_conv4_prelu[0][0]']       )                                                                 conv5_1_prelu (PReLU)          (None, 8, 8, 4, 256  65536       ['conv5_1[0][0]']                )                                                                 conv5_2 (Conv3D)               (None, 8, 8, 4, 256  8192256     ['conv5_1_prelu[0][0]']          )                                                                 conv5_2_prelu (PReLU)          (None, 8, 8, 4, 256  65536       ['conv5_2[0][0]']                )                                                                 conv5_3 (Conv3D)               (None, 8, 8, 4, 256  8192256     ['conv5_2_prelu[0][0]']          )                                                                 conv5_3_prelu (PReLU)          (None, 8, 8, 4, 256  65536       ['conv5_3[0][0]']                )                                                                 concat5 (Concatenate)          (None, 8, 8, 4, 512  0           ['down_conv4_prelu[0][0]',       )                                 'conv5_3_prelu[0][0]']          up_conv5 (Conv3DTranspose)     (None, 16, 16, 8, 2  1048832     ['concat5[0][0]']                56)                                                               up_conv5_prelu (PReLU)         (None, 16, 16, 8, 2  524288      ['up_conv5[0][0]']               56)                                                               conv6 (Concatenate)            (None, 16, 16, 8, 5  0           ['up_conv5_prelu[0][0]',         12)                               'concat4[0][0]']                conv6_1 (Conv3D)               (None, 16, 16, 8, 2  16384256    ['conv6[0][0]']                  56)                                                               conv6_1_prelu (PReLU)          (None, 16, 16, 8, 2  524288      ['conv6_1[0][0]']                56)                                                               conv6_2 (Conv3D)               (None, 16, 16, 8, 2  8192256     ['conv6_1_prelu[0][0]']          56)                                                               conv6_2_prelu (PReLU)          (None, 16, 16, 8, 2  524288      ['conv6_2[0][0]']                56)                                                               conv6_3 (Conv3D)               (None, 16, 16, 8, 2  8192256     ['conv6_2_prelu[0][0]']          56)                                                               conv6_3_prelu (PReLU)          (None, 16, 16, 8, 2  524288      ['conv6_3[0][0]']                56)                                                               concat6 (Concatenate)          (None, 16, 16, 8, 5  0           ['up_conv5_prelu[0][0]',         12)                               'conv6_3_prelu[0][0]']          up_conv6 (Conv3DTranspose)     (None, 32, 32, 16,   524416      ['concat6[0][0]']                128)                                                              up_conv6_prelu (PReLU)         (None, 32, 32, 16,   2097152     ['up_conv6[0][0]']               128)                                                              conv7 (Concatenate)            (None, 32, 32, 16,   0           ['up_conv6_prelu[0][0]',         256)                              'concat3[0][0]']                conv7_1 (Conv3D)               (None, 32, 32, 16,   4096128     ['conv7[0][0]']                  128)                                                              conv7_1_prelu (PReLU)          (None, 32, 32, 16,   2097152     ['conv7_1[0][0]']                128)                                                              conv7_2 (Conv3D)               (None, 32, 32, 16,   2048128     ['conv7_1_prelu[0][0]']          128)                                                              conv7_2_prelu (PReLU)          (None, 32, 32, 16,   2097152     ['conv7_2[0][0]']                128)                                                              conv7_3 (Conv3D)               (None, 32, 32, 16,   2048128     ['conv7_2_prelu[0][0]']          128)                                                              conv7_3_prelu (PReLU)          (None, 32, 32, 16,   2097152     ['conv7_3[0][0]']                128)                                                              concat7 (Concatenate)          (None, 32, 32, 16,   0           ['up_conv6_prelu[0][0]',         256)                              'conv7_3_prelu[0][0]']          up_conv7 (Conv3DTranspose)     (None, 64, 64, 32,   131136      ['concat7[0][0]']                64)                                                               up_conv7_prelu (PReLU)         (None, 64, 64, 32,   8388608     ['up_conv7[0][0]']               64)                                                               conv8 (Concatenate)            (None, 64, 64, 32,   0           ['up_conv7_prelu[0][0]',         128)                              'concat2[0][0]']                conv8_1 (Conv3D)               (None, 64, 64, 32,   1024064     ['conv8[0][0]']                  64)                                                               conv8_1_prelu (PReLU)          (None, 64, 64, 32,   8388608     ['conv8_1[0][0]']                64)                                                               conv8_2 (Conv3D)               (None, 64, 64, 32,   512064      ['conv8_1_prelu[0][0]']          64)                                                               conv8_2_prelu (PReLU)          (None, 64, 64, 32,   8388608     ['conv8_2[0][0]']                64)                                                               concat8 (Concatenate)          (None, 64, 64, 32,   0           ['conv8_2_prelu[0][0]',          128)                              'up_conv7_prelu[0][0]']         up_conv8 (Conv3DTranspose)     (None, 128, 128, 64  32800       ['concat8[0][0]']                , 32)                                                             up_conv8_prelu (PReLU)         (None, 128, 128, 64  33554432    ['up_conv8[0][0]']               , 32)                                                             conv9 (Concatenate)            (None, 128, 128, 64  0           ['up_conv8_prelu[0][0]',         , 49)                             'concat1[0][0]']                conv9_1 (Conv3D)               (None, 128, 128, 64  196032      ['conv9[0][0]']                  , 32)                                                             concat9 (Concatenate)          (None, 128, 128, 64  0           ['conv9_1[0][0]',                , 64)                             'up_conv8_prelu[0][0]']         out (Conv3D)                   (None, 128, 128, 64  130         ['concat9[0][0]']                , 2)                                                              ==================================================================================================
Total params: 181,710,178
Trainable params: 181,710,178
Non-trainable params: 0
__________________________________________________________________________________________________Process finished with exit code 0


http://chatgpt.dhexx.cn/article/c7NO8xvg.shtml

相关文章

VNet医学影像网络论文详解

文章目录 为什么有了VNet?论文部分Introduction为什么这种网络在医学影像方面表现这样好?Method左侧卷积下采样 右侧skip-connectionDice Loss Layer效果展示讲解PPT分享论文地址 为什么有了VNet? 之前很多的方法都是只能处理2D图像&#xf…

VMware连不上xshell,vnet8和vnet1出现黄色感叹号

根本原因: 上次卸载vmware没有卸载干净,有驱动程序的残留,如果这个问题不解决,重装多少遍都没用。 我也试过CCleaner 清理注册表,还是无效,根本之处还是找到注册表,删除相关问题 解决办法&am…

肺结节3D图像分割-VNet(一)

近期用Yolo训练肺结节检测模型感觉缺少3D结构信息,尝试一下3D图像分割,博文用以记录。 1、LUNA16数据集 1.1 Luna16数据集介绍 简介:来自于公开的LIDC/IDRI数据集。该数据集剔除了LIDC/IDRI数据集中切片厚度大于2.5mm的扫描数据&#xff0c…

V2VNet: Vehicle-to-Vehicle Communication for Joint Perception and Prediction

V2VNet:使用V2V通信提高自动驾驶车辆的感知和运动预测 任务: 感知和motion预测,SDV需要对3D场景进行推理,识别其他车辆/行人,并预测他们未来可能如何行动。 在一个深度网络模型中联合执行3D目标检测和motion预测可提高…

论文笔记A Liver Segmentation Method Based on the Fusion of VNet and WGAN

一种基于VNet和WGAN融合的肝脏分割方法 Computational and Mathematical Methods in Medicine 2021 虽然基于二维卷积神经网络的肝脏分割方法取得了不错的效果,但仍然存在层间信息的缺乏,在一定程度上造成分割精度的严重损失。同时,在2D…

经典论文解析——Unet和Vnet——图像分割

Unet & Vnet 1.Unet1.1 网络简介1.2 网络结构1.3 网络训练技巧 2.Vnet2.1 网络简介2.2 网络结构 前言说点题外话,最近在实习了,所以总结整理的时间不多,之前的系列也会继续做,只是更新速度会放慢一些。我尽量还是本着以质为主…

TAP/TUN Vnet veth

TAP 设备与 VETH 设备 TUN/TAP 设备是一种让用户态程序向内核协议栈注入数据的设备,一个工作在三层,一个工作在二层,使用较多的是 TAP 设备。VETH 设备出现较早,它的作用是反转通讯数据的方向,需要发送的数据会被转换成…

[深度学习论文笔记]3D AGSE-VNet: An Automatic Brain Tumor MRI Data Segmentation Framework

[深度学习论文笔记]3D AGSE-VNet: An Automatic Brain Tumor MRI Data Segmentation Framework 3D-AGSE-VNet:一种自动脑肿瘤MRI数据分割框架 Published: Jul 2021 Abstract by BMC Medical Imaging 论文:https://arxiv.org/abs/2107.12046 摘要&#x…

动手学习深度学习keras版——从零开始实现Vnet 2D版

从零开始实现Vnet 2D版 1. 数据处理1.1 数据集介绍1.2 数据提取和转换1.3 Keras的数据生成器(generator)构造 2. Vnet 2D版网络实现2.1 Loss函数设计2.2 网络结构实现 3. 开始训练啦4. 网络预测(inference)5. 结果展示6. 踩坑经验总结 工作需要,暂时换成keras来写网…

安卓 VNET 抓取 wskey 教程

图文示例机型:一加8 就设置可能长得不一样,功能均一致,请根据个人系统设置进行证书安装操作 wskey 相对于 cookie 的有效期更长,可以通过 wskey 转换智能化管理后台,省心 下载安装 VNET 抓包 APP 文件文件大小&#xf…

azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 使用 Azure 门户创建和管理 Azure Database for MySQL VNet 服务终结点和 VNet 规则Create and manage Azure …

【Microsoft Azure 的1024种玩法】六十三.通过全局 VNet 对等互连实现同一区域不同网段的虚拟网络实时打通

【简介】 虚拟网络对等互连是两个虚拟网络之间的网络连接, 虚拟网络对等互连可以通过 Azure 主干网络连接同一区域或不同区域的虚拟网络进行打通实现实时通信,本篇文章主要介绍了如何通过全局 VNet 对等互连的方式将同一区域不同网段的虚拟网络中虚拟机…

【Azure】微软 Azure 基础解析(七)Azure 网络服务中的虚拟网络 VNet、网关、负载均衡器 Load Balancer

本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx…

好用的Android抓包神器 VNET

很多网友要我发前几个青龙面板抓变量用到软件,马上安排。 黑科技VNET 最-好用的Android抓包神器 VNET是Android平台下功能最强大的网络抓包工具,支持HTTP&HTTPS,TCP&UDP,IPv6&IPv4,多终端显示&#xff0…

爬虫从入门到精通(19) |安卓手机端抓包软件VNET介绍

提前声明:该专栏涉及的所有案例均为学习使用,如有侵权,请联系本人删帖! 文章目录 一、前言二、介绍1.功能2.安装3.root和非root 一、前言 对于一些抓取较为严的软件,有时候我们不好抓到包,这个时候我们也可…

VNET原理与实现(1)

神经网络什么的早就不是新概念了,不过学了这么久,还一直在二维图像上打转,所以今天开始入手三维图像分割,先从可爱的VNET开始吧,从胖嘟嘟的外形看,这应该是个软柿子,那就试着捏一捏吧&#xff0…

UNet 、3D-UNet 、VNet 区别

UNet 、3D-UNet 、VNet 区别 医学图像的几个常用模型,简单总结一下。 三个model的代码在我的Github上,可以参考一下:https://github.com/VickyLLY/unet_and_vnet 文章目录 UNet 、3D-UNet 、VNet 区别一、UNet二、3D-UNet三、VNet 一、UNet…

程序员如何写一份更好的简历!!

概述 面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时。现在就有求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔。写得太短的话觉得没诚意,写得太长的话又无从下手。关键的是大多数求职者没有做面试官的经验,也没…

Java程序员简历模板

从「目标职位」的角度讲讲,如何做一份简历才能提高你拿到 Offer 的几率。 文章目录 简历重点一、HR如何刷简历二、简历排版顺序三、专业技能四、项目经验2013/06 -- 至今 伟业网上电商系统2012/03 -- 2012/08 人事管理系统 总结 简历重点 大家觉得简历就是自我赞歌…

程序员简历项目经验怎么写?

我是一个典型的互联网公司程序员,也见过无数的程序员简历,包括很多优秀的程序员简历,看了可以让人眼前一亮,优美简洁的简历模板,项目经验工作重点突出;也见过更多的写得不好的简历。程序员怎么写简历?程序员简历项目经…