Pytorch Swish()激活函数

import torch
import torch.nn as nn
import torch.optim as optim
class Net(nn.Module):
	def __init__(self):
		super(Net,self).__init__()
		self.main=nn.Sequential(
			nn.Linear(2,20),
			Swish(),
			nn.Linear(20,20),
			Swish(),
			nn.Linear(20,1)
		)
	def forward(self,x):
		output=self.main(x)
		return output	
class Swish(nn.Module):
	def __init(self,inplace=True):
		super(Swish,self).__init__()
		self.inplace=inplace
	def forward(self,x):
		if self.inplace:
			x.mul_(torch.sigmoid(x))
			return x
		else:
			return x*torch.sigmoid(x)	
# 初始化函数
def init_normal(m):
	if type(m) == nn.Linear():
		nn.init.kaming_normal_(m.weight)
if __name__==“__main__”:
	device = torch.device("cpu")
	net=Net().to(device)
	net.apply(init_normal)
	optimizer=optim.Adam(net.parameters(),lr=1e-3)
	
	input_data=xx  #输入数据
	label_data=xx #标签数据
	for epoch in range(epochs):
		net.zero_grad()
		input_data=torch.FLoatTensor(input_data).to(device)
		label_data=torch.FLoatTensor(label_data).to(device)
		
		input_data.requires_grad=True
		label_data.requires_grad=True
		
		out=net(input_data)
		loss_function=nn.MSEloss()
		loss=loss_function(out,label_data)
		loss.backward()
		optimizer.step()
		if epoch%100==0:
			torch.save(net.state_dict(),"D://test.pt")	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值