NLP(2)--搭建简单的模型(nn)

前言

仅记录学习过程,有问题欢迎讨论

可能使用到的包

可以通过Anaconda直接install,不行就PIP install xxx

  • Python
  • Torch
  • Transformers
  • Scikit-learn
  • Numpy
  • Gensim
  • Pandas

我的版本:

可以用 conda list 查看

代码

如果有包导入不进来,可以先去网上查查怎么用Anaconda下载包,

一般是conda install xxx;

还有就是项目环境的配置需要配置到对应Anaconda的环境下

注:python版本最好3.8以上。

java 复制代码
# try to build a simple neural network
import torch
import numpy
import torch.utils.data as Data
from torch.nn import init
import torch.optim as optim
# produce data list
num_input = 2
num_example = 1000
true_w = [2, -3.4]  # 真参数
true_b = 4.2  # 真 偏移量
# 特征
features = torch.tensor(numpy.random.normal(0, 1, (num_example, num_input)), dtype=torch.float)
# function
labels = true_w[0]*features[:, 0]+true_w[1]*features[:, 1] + true_b
# +噪声因子 均值为0、标准差为0.01的正态分布
labels += torch.tensor(numpy.random.normal(0, 0.01, size=labels.size()), dtype=torch.float)

batch_size = 10
# 将训练数据的特征和标签组合
dataset = Data.TensorDataset(features, labels)
# 随机读取小批量
data_iter = Data.DataLoader(dataset, batch_size, shuffle=True)
# 读取并打印第一个小批量数据样本
for X,y in data_iter:
    print(X,y)
    break
# 定义模型 nn input/output
net = torch.nn.Sequential(
    torch.nn.Linear(num_input, 1)
)
print("net =", net)

for param in net.parameters():
    print(param)

# 使用net前 需要初始化参数 初始化
init.normal(net[0].weight, mean=0, std=0.01 )
init.constant_(net[0].bias, val=0)

# 定义损失函数
loss = torch.nn.MSELoss()
# 定义优化算法
optimzer = optim.SGD(net.parameters(), lr=0.03)
print("optimzer =", optimzer)
# 训练模型
num_epochs = 10
for epoch in range(1, num_epochs+1):
    for X, y in data_iter:
        output = net(X)
        l = loss(output, y.view(-1, 1))
        optimzer.zero_grad()# 梯度清零,等价于net.zero_grad()
        l.backward()
        optimzer.step()
    print('epoch %d, loss: %f' % (epoch, l.item()))

# 比较学到的模型参数和真实的模型参数
print('result ==================')
dense = net[0]
print(true_w, dense.weight)
print(true_b, dense.bias)
相关推荐
笨鸟先飞,勤能补拙1 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能2 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
mingo_敏2 小时前
DeepAgents : 权限(Permissions)
人工智能·深度学习·langchain
江畔柳前堤2 小时前
信号的本质——从模拟波形到AI中的数据张量
人工智能·深度学习·机器学习·计算机视觉·数据挖掘·语音识别
浦信仿真大讲堂2 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
合调于形2 小时前
Bianfchheng (Liuu) 《边城(六)》字母标调拼音拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
Gu Gu Study3 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
HyperAI超神经3 小时前
15亿参数挑战机器人控制,MiniCPM-RobotManip正式开源;覆盖文本/图/视频/动作序列,英伟达发布全模态模型Cosmos3-Edge
人工智能·深度学习·机器人·多模态·图像生成·具身智能·智能体
卷无止境3 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境3 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python