#############################################################
############ 编写人:常泽钰
############ 时间 : 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
- 粉丝: 2806
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20241116_215300_com.baidu.netdisk.jpg
- java医院人事管理系统源码数据库 MySQL源码类型 WebForm
- 道路养护病害数据集-含原图和标签
- 2023-04-06-项目笔记 - 第三百一十九阶段 - 4.4.2.317全局变量的作用域-317 -2025.11.16
- 2023-04-06-项目笔记 - 第三百一十九阶段 - 4.4.2.317全局变量的作用域-317 -2025.11.16
- 1503ANDH1503002016_20241116222825
- 时间序列-黄金-15秒数据
- C#HR人事管理系统源码数据库 MySQL源码类型 WebForm
- C#CS餐饮管理系统源码数据库 SQL2008源码类型 WinForm
- 蛾类识别系统(深度学习+UI可视化)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0