unet是非常经典的图像分割的网络,因网络结构形似字母U而著称
实现起来不是很复杂,代码如下:
# -*- coding: utf-8 -*-
import torch
import torch.nn as nn
class unet(nn.Module):
def __init__(self):
super().__init__()
#conv1
self.conv1=nn.Sequential(
nn.Conv2d(1,64,3),
nn.BatchNorm2d(64),
nn.ReLU(inplace=True),
nn.Conv2d(64,64,3),
nn.BatchNorm2d(64),
nn.ReLU(inplace=True))
#conv2
self.conv2=nn.Sequential(
nn.Conv2d(64,128,3),
nn.BatchNorm2d(128),
nn.ReLU(inplace=True),
nn.Conv2d(128,128,3),
nn.BatchNorm2d(128),
nn.ReLU(inplace=True))
#conv3
self.conv3=nn.Sequential(
nn.Conv2d(128,256,3),
nn.BatchNorm2d(256),
nn.ReLU(inplace=True),
nn.Conv2d(256,256,3),
nn.BatchNorm2d(256),
nn.ReLU(inplace=True))
#conv4
self.conv4=nn.Sequential(
nn.Conv2d(256,512,3),
nn.BatchNorm2d(512),
nn.ReLU(inplace=True),
nn.Conv2d(512,512,3),
nn.BatchNorm2d(512),
nn.ReLU(inplace=True))
#conv5
self.conv5=nn.Sequential(
nn.Conv2d(1024,512,3),
nn.BatchNorm2d(512),
nn.ReLU(inplace=True),
nn.Conv2d(512,256,3),
nn.BatchNorm2d(256),
nn.ReLU(inplace=True))
#conv6
self.conv6=nn.Sequential(
nn.Conv2d(512,256,3),
nn.BatchNorm2d(256),
nn.ReLU(inplace=True),
nn.Conv2d(256,128,3),
nn.BatchNorm2d(128),
nn.ReLU(inplace=True))
#conv7
self.conv7=nn.Sequential(
nn.Conv2d(256,128,3),
nn.BatchNorm2d(128),
nn.ReLU(inplace=True),
nn.Conv2d(128,64,3),
nn.BatchNorm2d(64),
nn.ReLU(inplace=True))
self.trans=nn.Sequential(
nn.Conv2d(512,1024,kernel_size=3),
nn.BatchNorm2d(1024),
nn.ReLU(inplace=True),
nn.Conv2d(1024,512,3),
nn.BatchNorm2d(512),
nn.ReLU(inplace=True))
self.end=nn.Sequential(
nn.Conv2d(128,64,kernel_size=3),
nn.BatchNorm2d(64),
nn.ReLU(inplace=True),
nn.Conv2d(64,64,3),
nn.BatchNorm2d(64),
nn.ReLU(inplace=True),
nn.Conv2d(64,2,3),
nn.BatchNorm2d(2),
nn.ReLU(inplace=True)
)
self.unSample=nn.Upsample(mode='bilinear',scale_factor=2)
self.pool=nn.MaxPool2d(kernel_size=2,stride=2)
def forward(self,x):
out_conv1=self.conv1(x)
out=self.pool(out_conv1)
out_conv2=self.conv2(out)
out=self.pool(out_conv2)
out_conv3=self.conv3(out)
out=self.pool(out_conv3)
out_conv4=self.conv4(out)
out=self.pool(out_conv4)
out=self.trans(out)
out=self.unSample(out)
out=torch.cat((out,out_conv4[:,:,:out.shape[2],:out.shape[3]]),1)
out=self.conv5(out)
out=self.unSample(out)
out=torch.cat((out,out_conv3[:,:,:out.shape[2],:out.shape[3]]),1)
out=self.conv6(out)
out=self.unSample(out)
out=torch.cat((out,out_conv2[:,:,:out.shape[2],:out.shape[3]]),1)
out=self.conv7(out)
out=self.unSample(out)
out=torch.cat((out,out_conv1[:,:,:out.shape[2],:out.shape[3]]),1)
return self.end(out)
if __name__=='__main__':
input = torch.randn(1,1,572,572)
net=unet()
output = net(input)
print(output)
torch.save(net,'unet.pth')
torch.onnx.export(net, input, "unet.onnx", export_params=True, opset_version=10,
do_constant_folding=True, input_names = ['input'], output_names = ['output'],
)
运行结果如下:
此代码没有进行训练,是直接使用初始化权重的结果
接口的含义: 接口就是多个类的公共范围。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。如何定义一个接口的格式:public interface 接口名称{ //接口内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是:java --> .class。如果是Java 7,那么接口可以包含的内容有:1. 常量2. 抽象方法..._接口中可以定义常量私有方法
【必看】2020年新型前端HTML5+CSS3+JS+Canvas+AJAX+Http前后端交互 ..._2020年新型前端html+css3+js+canvas+ajax+http javascript零基础入门 百度云
mysql全文索引Can't find FULLTEXT index matching the column list解决方案_can't find fulltext index matching the column list
使用pyspark的时候定义数据类型通过@pandas_udf的形式进行装饰的时候发现这个错误schema = StructType([ StructField("store_sku", StringType()), StructField("ds", StringType()), StructField("pro_pred", DoubleType())])@pandas_udf(schema, functionType=PandasUDFType.GROUPED_MAP_pyarrow.lib.arrowinvalid: 'utf-32-le' codec can't decode bytes in position 0
Gmail是一款很优秀的邮件工具,我一直使用Gmail来托管公司的邮箱,利用最棒的过滤器进行过滤垃圾邮件。前段时间公司邮箱密码更换,使用了新的密码后导致了只能收邮件不能发邮件,每次发邮件都会提示这样的错误。12345678Delivery to the following recipient failed permanently: [email protected]...
目录一:Linux启动流程 init和Systemd的区别二:Linux服务管理(service,systemctl)一:Linux启动流程Rhel6启动过程:Rhel7启动过程:GRUB2相较于GRUB一代的提升:更健壮、可移植、更强大。支持BIOS、EFI..._/usr/sbin/init与/usr/lib/systemd/systemd
【python】Python3中出现'gbk' codec can't encode characte的成功解决方法?_gbk' codec can't encode character '
一次渗透测试中已上传WebShell,并且是system权限,但是在蚁剑终端输入命令时都没有回显,经过验证,的确是命令执行失败,原因未知。于是尝试用MySQL的sys_exec()或sys_eval()来执行命令,本文旨在随记这一渗透场景所用到的姿势及手法,最后这一渗透思路是失败告捷的。(涉及到UDF提权的姿势)我遇到的MySQL版本为5.7.22,因为版本大于5.1,udf.dll文件必须放置在MySQL安装目录的lib\plugin文件夹,没有此文件夹就手动创建。0x01 解码sqlmap自带的ud_sys_exec可以用什么替换
1.开始->运行->CMD2.进入某个磁盘,直接盘符代号:如D:,不用CD 命令切换3.进入除根录以下的文件夹 cd 文件夹路径 例如我要进入 E:\Program Files\PHP 就输入 E:回车 注: 不 能在一打开CMD的时候运行CD E:\Program Files\PHP,需要先进入磁盘(若一打开CMD的时候运行CD E:\Program Files_git cmd怎么进入指定路径
autodesk卸载工具(AUTO Uninstaller)是专门为了针对autodesk类软件卸载不干净而导致autodesk安装失败问题进行研发的autodesk一键卸载工具。现在虽然360或一些卸载软件提供了强力卸载autodesk的工具,可以将autodesk注册表和一些autodesk目录的autodesk残留信息删除,但仍不能确保将Autodesk所有相关程序文件和注册表全部彻底删除。..._cad专用卸载工具
原数据let obj = { 'a.b.c':111, // 'c':2, 'a.b.d':3, 'date.name':'ceso'}目标数据 { a: { b: { c: 111, d: 3 } }, date: { name: 'ceso' } }案例let obj = { 'a.b.c':111, // 'c':2, 'a.b.d':3, 'date.name':'ceso'}var deepExtend = r_form.setfieldsvalue设置对象属性值
Python网络爬虫(一):安装开发环境及爬虫基础一、安装学习Python网络爬虫要有一定Python基础,本系列重点在网络爬虫,不讲述Python基础,需要学习Python基础的可以参考以下链接网站:菜鸟教程:https://www.runoob.com/python3/python3-tutorial.html中国大学MOOC:https://www.icourse163.org/course/BIT-2680011.Python3的安装如果你学过Python基础那么就一定安装了Python_爬虫 network响应 图标代表什么意思