#############################################################
############ 编写人:常泽钰
############ 时间 : 2022/9/23
############ 功能 :实现明星的图片分类
############ 数据格式:
'''
--dataset
--train
--0
--**.jpg
--.......
--1
--2
--3
--val
'''
#############################################################
batch_size = 8 #设置批次大小
learning_rate = 1e-4 #设置学习率
epoches = 2 #设置训练的次数
import torch
import os
from torch.utils import data
import torchvision.datasets as dsets
import torchvision.transforms as transforms
trainpath = './dataset/train/'
valpath = './dataset/val/'
#数据增强的方式
traintransform = transforms .Compose([
transforms .RandomRotation (20), #随机旋转角度
transforms .ColorJitter(brightness=0.1), #颜色亮度
transforms .Resize([224, 224]), #设置成224×224大小的张量
transforms .ToTensor(), # 将图⽚数据变为tensor格式
# transforms.Normalize(mean=[0.485, 0.456, 0.406],
# std=[0.229, 0.224, 0.225]),
])
valtransform = transforms .Compose([
transforms .Resize([224, 224]),
transforms .ToTensor(), # 将图⽚数据变为tensor格式
])
trainData = dsets.ImageFolder (trainpath, transform =traintransform ) # 读取训练集,标签就是train⽬录下的⽂件夹的名字,图像保存在格⼦标签下的⽂件夹⾥
valData = dsets.ImageFolder (valpath, transform =valtransform ) #读取演正剧
trainLoader = torch.utils.data.DataLoader(dataset=trainData, batch_size=batch_size, shuffle=True) #将数据集分批次 并打乱顺序
valLoader = torch.utils.data.DataLoader(dataset=valData, batch_size=batch_size, shuffle=False) #将测试集分批次并打乱顺序
test_sum = sum([len(x) for _, _, x in os.walk(os.path.dirname(trainpath))]) #计算 训练集和测试集的图片总数
train_sum = sum([len(x) for _, _, x in os.walk(os.path.dirname(valpath))])
import numpy as np
import torchvision.models as models
model = models.resnet34(pretrained=True) #pretrained表⽰是否加载已经与训练好的参数
model.fc = torch.nn.Linear(512, 10) #将最后的fc层的输出改为标签数量(如3),512取决于原始⽹络fc层的输⼊通道
#model = model.cuda() # 如果有GPU,⽽且确认使⽤则保留;如果没有GPU,请删除
from MyLoss import Loss
#criterion=Loss("mean")
criterion = torch.nn.CrossEntropyLoss() # 定义损失函数
#optimizer = torch.optim.Adam(model.parameters (), lr=learning_rate )
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate) # 定义优化器
from torch.autograd import Variable
#定义训练的函数
def train(model, optimizer, criterion):
model.train()
total_loss = 0
train_corrects = 0
for i, (image, label) in enumerate (trainLoader):
#image = Variable(image.cuda()) # 同理
#label = Variable(label.cuda()) # 同理
#print(i,image,label)
optimizer.zero_grad ()
target = model(image)
loss = criterion(target, label)
loss.backward()
optimizer.step()
total_loss += loss.item()
max_value , max_index = torch.max(target, 1)
pred_label = max_index.cpu().numpy()
true_label = label.cpu().numpy()
train_corrects += np.sum(pred_label == true_label)
return total_loss / float(len(trainLoader)), train_corrects / train_sum
testLoader=valLoader
#定义测试的函数
def evaluate(model, criterion):
model.eval()
corrects = eval_loss = 0
with torch.no_grad():
for image, label in testLoader:
#image = Variable(image.cuda()) # 如果不使⽤GPU,删除.cuda()
#label = Variable(label.cuda()) # 同理
pred = model(image)
loss = criterion(pred, label)
eval_loss += loss.item()
max_value, max_index = torch.max(pred, 1)
pred_label = max_index.cpu().numpy()
true_label = label.cpu().numpy()
corrects += np.sum(pred_label == true_label)
return eval_loss / float(len(testLoader)), corrects, corrects / test_sum
#torch.save(model,"./resnet1.pt")
for i in range(epoches):
print("第{}个epoch".format(i+1))
train_loss,train_acc=train(model,optimizer,criterion)
print("train_loss: {} train_acc: {}\n".format(train_loss,train_acc))
test_loss,test_correct,test_acc=evaluate(model,criterion)
print("test_loss: {} test_correct:{} test_acc:{}".format(test_loss,test_correct,test_acc))
torch.save(model,"./resnet34_2.pt")#保存模型,第二个参数是保存的路径
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
明星图片分类 包括代码,数据,注解 (2693个子文件)
f2d895a2-ea49-11e9-8f54-b025aa21b04b.jpg 554KB
f2d895a2-ea49-11e9-8f54-b025aa21b04b.jpg 554KB
e97e2ce2-ea49-11e9-bdf8-b025aa21b04b.jpg 378KB
e97e2ce2-ea49-11e9-bdf8-b025aa21b04b.jpg 378KB
8622e222-ea4a-11e9-bc57-b025aa21b04b.jpg 234KB
8622e222-ea4a-11e9-bc57-b025aa21b04b.jpg 234KB
d43f5522-ea49-11e9-9ba5-b025aa21b04b.jpg 227KB
d43f5522-ea49-11e9-9ba5-b025aa21b04b.jpg 227KB
dace1030-ea48-11e9-9216-b025aa21b04b.jpg 192KB
dace1030-ea48-11e9-9216-b025aa21b04b.jpg 192KB
dcbd5d12-ea48-11e9-b766-b025aa21b04b.jpg 125KB
dcbd5d12-ea48-11e9-b766-b025aa21b04b.jpg 125KB
de714ea2-ea48-11e9-ac65-b025aa21b04b.jpg 119KB
de714ea2-ea48-11e9-ac65-b025aa21b04b.jpg 119KB
ddfd5722-ea48-11e9-9a87-b025aa21b04b.jpg 98KB
ddfd5722-ea48-11e9-9a87-b025aa21b04b.jpg 98KB
ff0a1330-ea49-11e9-832e-b025aa21b04b.jpg 97KB
ff0a1330-ea49-11e9-832e-b025aa21b04b.jpg 97KB
1c05c5c0-ea49-11e9-aa11-b025aa21b04b.jpg 96KB
1c05c5c0-ea49-11e9-aa11-b025aa21b04b.jpg 96KB
c2fab570-ea49-11e9-84d9-b025aa21b04b.jpg 91KB
c2fab570-ea49-11e9-84d9-b025aa21b04b.jpg 91KB
db528d00-ea49-11e9-a66c-b025aa21b04b.jpg 89KB
db528d00-ea49-11e9-a66c-b025aa21b04b.jpg 89KB
3c6b13b0-ea49-11e9-8ca6-b025aa21b04b.jpg 89KB
3c6b13b0-ea49-11e9-8ca6-b025aa21b04b.jpg 89KB
da814fc0-ea48-11e9-88d6-b025aa21b04b.jpg 81KB
da814fc0-ea48-11e9-88d6-b025aa21b04b.jpg 81KB
da2aa440-ea48-11e9-b650-b025aa21b04b.jpg 80KB
da2aa440-ea48-11e9-b650-b025aa21b04b.jpg 80KB
2c28d362-ea4a-11e9-b866-b025aa21b04b.jpg 79KB
2c28d362-ea4a-11e9-b866-b025aa21b04b.jpg 79KB
0abba7d2-ea49-11e9-9626-b025aa21b04b.jpg 77KB
0abba7d2-ea49-11e9-9626-b025aa21b04b.jpg 77KB
39efcff0-ea48-11e9-a43f-b025aa21b04b.jpg 74KB
39efcff0-ea48-11e9-a43f-b025aa21b04b.jpg 74KB
c0c70c92-ea49-11e9-8262-b025aa21b04b.jpg 74KB
c0c70c92-ea49-11e9-8262-b025aa21b04b.jpg 74KB
a9c7a3a2-ea4a-11e9-9429-b025aa21b04b.jpg 72KB
a9c7a3a2-ea4a-11e9-9429-b025aa21b04b.jpg 72KB
d7170630-ea49-11e9-94a1-b025aa21b04b.jpg 70KB
d7170630-ea49-11e9-94a1-b025aa21b04b.jpg 70KB
0f315170-ea49-11e9-a3a2-b025aa21b04b.jpg 70KB
0f315170-ea49-11e9-a3a2-b025aa21b04b.jpg 70KB
40948e92-ea48-11e9-bc1a-b025aa21b04b.jpg 68KB
40948e92-ea48-11e9-bc1a-b025aa21b04b.jpg 68KB
39161c52-ea49-11e9-a317-b025aa21b04b.jpg 63KB
39161c52-ea49-11e9-a317-b025aa21b04b.jpg 63KB
22127400-ea52-11e9-b25b-b025aa21b04b.jpg 63KB
22127400-ea52-11e9-b25b-b025aa21b04b.jpg 63KB
dc4b6162-ea48-11e9-bcfd-b025aa21b04b.jpg 61KB
dc4b6162-ea48-11e9-bcfd-b025aa21b04b.jpg 61KB
cafe8ee2-ea49-11e9-8558-b025aa21b04b.jpg 61KB
cafe8ee2-ea49-11e9-8558-b025aa21b04b.jpg 61KB
db2c0eb0-ea48-11e9-a71c-b025aa21b04b.jpg 60KB
db2c0eb0-ea48-11e9-a71c-b025aa21b04b.jpg 60KB
82012f70-ea4b-11e9-a1af-b025aa21b04b.jpg 58KB
82012f70-ea4b-11e9-a1af-b025aa21b04b.jpg 58KB
d0083b22-ea49-11e9-8c8b-b025aa21b04b.jpg 57KB
d0083b22-ea49-11e9-8c8b-b025aa21b04b.jpg 57KB
4038da00-ea48-11e9-8d93-b025aa21b04b.jpg 57KB
4038da00-ea48-11e9-8d93-b025aa21b04b.jpg 57KB
865cdde2-ea4a-11e9-86f5-b025aa21b04b.jpg 57KB
865cdde2-ea4a-11e9-86f5-b025aa21b04b.jpg 57KB
d49b7ee2-ea49-11e9-aebf-b025aa21b04b.jpg 57KB
d49b7ee2-ea49-11e9-aebf-b025aa21b04b.jpg 57KB
c0474352-ea4b-11e9-af8a-b025aa21b04b.jpg 56KB
c0474352-ea4b-11e9-af8a-b025aa21b04b.jpg 56KB
2abc2400-ea4a-11e9-b672-b025aa21b04b.jpg 55KB
2abc2400-ea4a-11e9-b672-b025aa21b04b.jpg 55KB
c86f3170-ea49-11e9-94f5-b025aa21b04b.jpg 54KB
c86f3170-ea49-11e9-94f5-b025aa21b04b.jpg 54KB
dd921230-ea48-11e9-b0f0-b025aa21b04b.jpg 54KB
dd921230-ea48-11e9-b0f0-b025aa21b04b.jpg 54KB
003329e2-ea4a-11e9-99d5-b025aa21b04b.jpg 54KB
003329e2-ea4a-11e9-99d5-b025aa21b04b.jpg 54KB
75b6ef30-ea4a-11e9-9938-b025aa21b04b.jpg 53KB
75b6ef30-ea4a-11e9-9938-b025aa21b04b.jpg 53KB
c10a1e22-ea4b-11e9-92f3-b025aa21b04b.jpg 51KB
c10a1e22-ea4b-11e9-92f3-b025aa21b04b.jpg 51KB
f9881f22-ea48-11e9-98da-b025aa21b04b.jpg 51KB
f9881f22-ea48-11e9-98da-b025aa21b04b.jpg 51KB
667b5b62-ea49-11e9-8a86-b025aa21b04b.jpg 51KB
667b5b62-ea49-11e9-8a86-b025aa21b04b.jpg 51KB
198e07a2-ea4c-11e9-8143-b025aa21b04b.jpg 51KB
198e07a2-ea4c-11e9-8143-b025aa21b04b.jpg 51KB
439c5052-ea48-11e9-b4d3-b025aa21b04b.jpg 50KB
439c5052-ea48-11e9-b4d3-b025aa21b04b.jpg 50KB
0a128f30-ea4c-11e9-8a94-b025aa21b04b.jpg 50KB
0a128f30-ea4c-11e9-8a94-b025aa21b04b.jpg 50KB
3c065e70-ea49-11e9-8a7b-b025aa21b04b.jpg 50KB
3c065e70-ea49-11e9-8a7b-b025aa21b04b.jpg 50KB
565cec30-ea49-11e9-9049-b025aa21b04b.jpg 50KB
565cec30-ea49-11e9-9049-b025aa21b04b.jpg 50KB
072e8970-ea49-11e9-a92b-b025aa21b04b.jpg 49KB
072e8970-ea49-11e9-a92b-b025aa21b04b.jpg 49KB
ad1e8c40-ea49-11e9-9640-b025aa21b04b.jpg 47KB
ad1e8c40-ea49-11e9-9640-b025aa21b04b.jpg 47KB
cd417a00-ea49-11e9-bce1-b025aa21b04b.jpg 46KB
cd417a00-ea49-11e9-bce1-b025aa21b04b.jpg 46KB
共 2693 条
- 1
- 2
- 3
- 4
- 5
- 6
- 27
TechMasterPlus
- 粉丝: 3211
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Simulink的考虑局部遮阴的光伏PSO-MPPT控制模型.rar
- 基于Simulink的最大功率点追踪MPPT功能的单相单级脉宽调制(PWM)光伏逆变器,并且支持并网运行.rar
- 基于TCN-GRU的自行车租赁数量预测研究Matlab代码.rar
- 基于TCN-GRU-Attention的自行车租赁数量预测研究Matlab代码.rar
- 基于WoodandBerry1和非耦合控制WoodandBerry2来实现控制木材和浆果蒸馏柱控制Simulink仿真.rar
- 基于变分多谐波对偶模式追踪从噪声信号中提取重复瞬态分量的方法附Matlab代码.rar
- 基于Python的智能门禁打卡系统设计与开发-含详细代码及解释
- 数电课件,数字电路与逻辑
- A Neural Probabilistic Language Model.pdf
- 基于Java的学生信息管理系统实现
- OpenCV人脸检测和识别
- 管理工具PKIManager-1.1.3.6-全算法版本-信创
- ACM程序设计经典题目与解决方案(C语言实现)
- 详细的Visual Studio安装教程及注意事项
- 手机侧面轮廓尺寸检测机3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- GitHub教程:账号注册、项目创建与协同开发详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0