飞桨AI创造营2期-t5-模型训练

飞桨AI创造营2期-t5-模型训练

(Datawhale34期组队学习)

1知识点

  • 建立网络
    • 打车例子-预测
    • 数字识别-分类
  • paddleX

2具体内容

2.1建立网络

2.1.1打车例子-预测
  1. data
  2. 定义网络
  3. 定义loss
  4. 定义优化器
  5. 组件训练程序
  6. 预测
import paddle
#1.data 打车里程与费用
data_x = [3,12,4,7,9]
data_y = [19,40,21,27,32]

#2.网络算法
net = paddle.nn.linear(in_features=1, out_features=1)

#3.loss
loss_func = paddle.nn.MSELoss()

#4.优化器
opt=paddle.optimizer.SGD(parameters=net.parameters())

#5.training
for epoch in range(10):
	for x,y in zip(data_x, data_y):
		x = paddle.to_tensor([x],dtype='float32')
		y = paddle.to_tensor([y],dtype='float32')
		infer_y = net(x)
		loss = loss_func(infer_y, y)
		loss.backward()#反馈求梯度
		opt.step()#优化
		opt.clear_gradients()#清楚有可能错误的梯度
		print(f"Epoch:{epoch}\t loss:{loss.numpy()}")

#6.predict
X = paddle.to_tensor([8],dtype="float32")
infer_y = net(X)
print(f"8km打车价格:{inter_y.numpy()}元。")
 
2.1.2数字识别-分类
import paddle
import numpy as np
from PIL import Image

#1data
ROOT="./data"
with open(os.path.join(ROOT,'label_dict.txt'))as file:
	labels = eval(file.read())#检查是否有恶意代码

#2.network
class Net(paddle.nn.Layer):
	def __init__(self):
	super(Net, self).__init__()
	self.fc1 = paddle.nn.Linear(in_features=3*15*30, out_features=128)
	self.fc2 = paddle.nn.Linear(in_features=128, out_features=10)
	
	def forward(self,x):
		x = self.fc1(x)
		x = self.fc2(x)
		returen x
		
net = Net()
#3.loss
loss_func = paddle.nn.CrossEntropyLoss()

#4.优化器
opt=paddle.optimizer.SGD(parameters=net.parameters())

#5.training
for epoch in range(10):
	for img_id in range(1,1000):
		img_name = f"{img_id}.jpg"
		_img = Image.open(os.path.join(ROOT, img_name))#打开图片文件
		_img = np.array(_img).astype("float32").flatten()/255 #转成np的array,展平,、255归一
		_img = paddle.to_tensor([_img],dtype='float32')
		_label = labels[img_name]
		_label = paddle.to_tensor([_label],dtype="int64")
		
		number_prob = net(_img)
		loss = loss_func(number_prob, _label)
		loss.backward()#反馈求梯度
		opt.step()
		opt.clear_gradients()#清楚有可能错误的梯度
		print(f"Epoch:{epoch}\t loss:{loss.numpy()}")

paddle.save(net.state_dict(), "param")

#6.predict
net.set_state_dict(paddle.load('param'))
_img = Image.open(os.path.join(ROOT, '2000.jpg'))#打开图片文件
_img = np.array(_img).astype("float32").flatten()/255
_img = paddle.to_tensor([_img],dtype='float32')

infer_num = net(_img)
print('predict 2000.jpg的:', paddle.nn.functional.softmax(infer_num))
print('model最大概率标签:', np.argmax(infer_num.numpy()[0]))

在这里插入图片描述
补充深度学习的基础,解决网络内问题,保证模型的质量

2.2 paddle

  • paddleX
  • PaddleNLP
  • PaddleDetection
  • PaddleSeg

3参考

https://aistudio.baidu.com/aistudio/education/lessonvideo/2253796

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值