资源简介
复旦大学顾晓东老师课程作业代码,python实现:用BP、RBF、SVM实现三个函数拟合;代码包括数据的产生,数据的输入,训练等
代码片段和文件信息
import torch
import numpy as nn
import matplotlib.pyplot as plt
import torch.nn.functional as F
import numpy as np
epoch = 1000
def train():
print(‘------ 构建数据集 ------‘)
x = torch.unsqueeze(torch.cat([torch.linspace(-10 -1 50)torch.linspace(-1 -0.01 50)
torch.linspace(0.01 1 50)torch.linspace(1 10 50)]) dim=1)
#y = np.sin(x)/np.abs(x)
y = x
#y1 = y**(-1)
# y2 = y1**(1/3)
plt.scatter(x y)
x = x.cuda()
y = y.cuda()
# plt.show()
print(‘------ 搭建网络 ------‘)
# 使用固定的方式继承并重写 init和forword两个类
class Net(torch.nn.Module):
def __init__(self n_feature n_hidden1n_hidden2n_output):
# 初始网络的内部结构
super(Net self).__init__()
self.hidden1 = torch.nn.Linear(n_feature n_hidden1)
self.hidden2 = torch.nn.Linear(n_hidden1 n_hidden2)
self.predict = torch.nn.Linear(n_hidden2 n_output)
def forward(self x):
# 一次正向行走过程
x = torch.tanh(self.hidden1(x))
x = torch.tanh(self.hidden2(x))
x = self.predict(x)
return x
net = Net(n_feature=1 n_hidden1=500n_hidden2=500 n_output=1)
net = net.cuda()
print(‘网络结构为:‘ net)
print(‘------ 启动训练 ------‘)
loss_func = F.mse_loss
optimizer = torch.optim.SGD(net.parameters() lr=0.001)
# 使用数据 进行正向训练,并对Variable变量进行反向梯度传播 启动100次训练
for i in range(epoch):
# 使用全量数据 进行正向行走
prediction = net(x)
loss = loss_func(prediction y)
optimizer.zero_grad() # 清除上一梯度
loss.backward() # 反向传播计算梯度
optimizer.step() # 应用梯度
if i % 100==0:
print(‘epoch:[%d/%d]loss: %.6f‘ % (i epoch loss))
# 间隔一段,对训练过程进行可视化展示
if i % 5 == 0:
plt.cla()
# x = x.cpu()
# y = y.cpu()
plt.scatter(x.cpu() y.cpu())
plt.plot(x.detach().cpu().numpy() prediction.detach().cpu().numpy() ‘r-‘ lw=5)
plt.text(0.5 0 ‘Loss=‘ + str(loss.item()) fontdict={‘size‘: 20 ‘color‘: ‘red‘})
plt.pause(0.1)
plt.ioff()
plt.show()
if __name__ == ‘__main__‘:
train()
相关资源
- 卷积神经网络的Python实现 -《卷积神经
- Michael Nielsen 的《Neural Networks and Deep
- 《Python神经网络编程》中文版PDF+英文
- 脉冲神经网络Python可运行
- matlab和python的神经网络
- 基于卷积神经网络的人脸识别
- 基于卷积神经网络的手势识别
- CNN用于图像分类以外的数字序列.rar
- 基于卷积神经网络的猫种类识别
- 神经网络与深度学习-Neural Network and
- 卷积神经网络的Python实现
- 卷积神经网络预测
- 手写数字图像识别
- ENAS PyTorch高效神经网络结构搜索 项目
- 利用Python实现的BP神经网络进行人脸识
- Python-各种对抗神经网络GAN大合集
- 基于模糊神经网络的目标自动识别
- 神经网络实现简单的手写数字识别
- 手写数字识别:Python+BP神经网络+PYQ
- 基于卷积神经网络的食物图像识别
- Python-基于深度神经网络和蒙特卡罗树
- 卷积神经网络的Python实现-参考代码
- Python神经网络编程高清版.pdf
- 基于Python的卷积神经网络的分类
- Python-waifu2x利用卷积神经网络放大图片
- Python神经网络编程.pdf(英文版)+代码
- 卷积神经网络实现图像分类
- python神经网络中英文代码.zip
- 神经网络实现图像分类
- Python利用神经网络解决非线性回归问
评论
共有 条评论