出现错误 urlopen error unknown url type: https 的解决办法:

问题出现在使用网络模型加载参数时:

报出错误,经过查看是由于model_url(一个储存网址的变量)需要从https网址处获取信息,据说是没有ssl模块不支持https,建议重装python

我用的conda虚拟环境,重装非常麻烦

后来尝试了一下:将所用网址去掉s,即https——http,后面不变,加载成功

将这个路径下的py文件打开

打开后修改model_urls中的https

但是,改了之后,还是不成功!!!!

后来,仔细看了一下报错的说明

把前面的网址复制一下,到浏览器中打开,将预训练模型下载到后面 的这个路径当中,问题解决!

将我的源码放在这:

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.utils import dataimport numpy as np
import matplotlib.pyplot as plt
%matplotlib inlineimport torchvision
from torchvision import transforms
import os from lxml import etree          # 解析xml文件
from matplotlib.patches import Rectangle
import globfrom PIL import ImageBATCH_SIZE = 8
pil_img = Image.open(r'dataset/images/Abyssinian_1.jpg')
np_img = np.array(pil_img)img = pil_img.resize((224,224))         #将图片转换成224*224的大小width = sel.xpath('//size/width/text()')[0]
height = sel.xpath('//size/height/text()')[0]
width = int(width)
height = int(height)xmin = (xmin/width)*224              #将图片的xmin按照比例显示在处理后的图片上
ymin = (ymin/height)*224
xmax = (xmax/width)*224              #将图片的xmax按照比例显示在处理后的图片上
ymax = (ymax/height)*224plt.imshow(img)
rect = Rectangle((xmin,ymin),(xmax-xmin),(ymax-ymin),fill=False,color='green')
ax = plt.gca()
# ax.axes.add_patch(rect)images = glob.glob(r'dataset/images/*.jpg')
anno = glob.glob(r'dataset/annotations/*.xml')
xml_name = [x.split('\\')[-1].replace('.xml','') for x in anno]
imgs = [x for x in images if x.split('\\')[-1].replace('.jpg','') in xml_name]  #这里是数据的筛选,将数据一一对应def to_labels(path):xml = open(r'{}'.format(path)).read()sel = etree.HTML(xml)width = int(sel.xpath('//size/width/text()')[0])height = int(sel.xpath('//size/height/text()')[0])xmin = int(sel.xpath('//bndbox/xmin/text()')[0])xmax = int(sel.xpath('//bndbox/xmax/text()')[0])ymin = int(sel.xpath('//bndbox/ymin/text()')[0])ymax = int(sel.xpath('//bndbox/ymax/text()')[0])return[xmin/width,ymin/height,xmax/width,ymax/height]labels = [to_labels(p) for p in anno]
# labels
index = np.random.permutation(len(imgs))
imgs = np.array(imgs)[index]
labels=np.array(labels)[index]
i = int(len(imgs)*0.8)
# 划分训练集和测试集
train_imgs = imgs[:i]
train_labels = labels[:i]test_imgs = imgs[i:]
test_labels = labels[i:]transform = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor()
])class OXford_dataset(data.Dataset):                      def __init__(self,img_paths,labels_list):               #创建dataste的类:第一步初始化方法self.imgs = img_pathsself.labels = labels_listdef __getitem__(self,index):img = self.imgs[index]pil_img = Image.open(img)img_tentor = transform(pil_img)l1,l2,l3,l4 =self.labels[index]return img_tentor,l1,l2,l3,l4def __len__(self):return len(self.imgs)train_dataset = OXford_dataset(train_imgs,train_labels)
test_dataset = OXford_dataset(test_imgs,test_labels)train_dl = data.DataLoader(train_dataset,batch_size=32,shuffle = True)
test_dl = data.DataLoader(test_dataset,batch_size=32)
img_batch,out1_b,out2_b,out3_b,out4_b = next(iter(train_dl))resnet = torchvision.models.resnet101(pretrained=True)# 提取预训练模型的卷积基
conv_base = nn.Sequential(*list(resnet.children())[:-1])       # 用resnet除去linear层创建一个新的卷积层,*解包in_f = resnet.fc.in_featuresclass Net(nn.Module):def __init__(self):super(Net,self).__init__()self.conv_base = nn.Sequential(*list(resnet.children())[:-1])self.fc1 = nn.Linear(in_f,1)self.fc2 = nn.Linear(in_f,1)self.fc3 = nn.Linear(in_f,1)self.fc4 = nn.Linear(in_f,1)def forward(self,x):x = self.conv_base(x)x = x.view(x.size(0),-1)x1 = self.fc1(x)x2 = self.fc2(x)x3 = self.fc3(x)x4 = self.fc4(x)return x1,x2,x3,x4model = Net()
if torch.cuda.is_available():model.to('cuda')
loss_fn = nn.MSELoss()
from torch.optim import lr_scheduler
optimizer = torch.optim.Adam(model.parameters(),lr=0.0001)
exp_lr_scheduler = lr_scheduler.StepLR(optimizer,step_size=7,gamma=0.1)def fit(epoch,model,trainloader,testloader):total = 0running_loss = 0model.train()for x,y1,y2,y3,y4 in trainloader:if torch.cuda.is_available():x,y1,y2,y3,y4 = (x.to('cuda'),y1.to('cuda'),y2.to('cuda'),y3.to('cuda'),y4.to('cuda'))y_pred1,y_pred2,y_pred3,y_pred4 = model(x)loss1 = loss_fn(y_pred1,y1)loss2 = loss_fn(y_pred2,y2)loss3 = loss_fn(y_pred3,y3)loss4 = loss_fn(y_pred4,y4)loss = loss1+loss2+loss3+loss4optimizer.zero_grad()loss.backward()optimizer.step()with torch.no_grad():running_loss += loss.item()exp_lr_scheduler.step()epoch_loss = running_loss/len(trainloader.dataset)test_total = 0test_running_loss = 0model.eval()with torch.no_grad():for x,y1,y2,y3,y4 in trainloader:if torch.cuda.is_available():x,y1,y2,y3,y4 = (x.to('cuda'),y1.to('cuda'),y2.to('cuda'),y3.to('cuda'),y4.to('cuda'))y_pred1,y_pred2,y_pred3,y_pred4 = model(x)loss1 = loss_fn(y_pred1,y1)loss2 = loss_fn(y_pred2,y2)loss3 = loss_fn(y_pred3,y3)loss4 = loss_fn(y_pred4,y4)loss = loss1+loss2+loss3+loss4test_running_loss += loss.item()epoch_test_loss = test_running_loss/len(testloader.dataset)print('epoch:',epoch,'loss:',round(epoch_loss,3),'epoch:',round(epoch_test_loss,3))return epoch_loss,epoch_test_loss     epochs = 10train_loss = []
test_loss = []
for epoch in range(epochs):epoch_loss,epoch_test_loss = fit(epoch,model,train_dl,test_dl)train_loss.append(epoch_loss)test_loss.append(epoch_test_loss)plt.figure()
plt.plot(range(1,len(train_loss)+1),train_loss,'r',label='Training loss')
plt.plot(range(1,len(train_loss)+1),test_loss,'r',label='Validation loss')
plt.title('Training and Validation Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss Value')
plt.lend()
plt.show()

pytorch深度学习出错整理(一)相关推荐

  1. 【Pytorch深度学习实践】B站up刘二大人课程笔记——目录与索引(已完结)

    从有代码的课程开始讨论 [Pytorch深度学习实践]B站up刘二大人之LinearModel -代码理解与实现(1/9) [Pytorch深度学习实践]B站up刘二大人之 Gradient Desc ...

  2. 手把手教你搭建pytorch深度学习网络

    总有人在后台问我,如今 TensorFlow 和 PyTorch 两个深度学习框架,哪个更流行? 就这么说吧,今年面试的实习生,问到常用的深度学习框架时,他们清一色的选择了「PyTorch」. 这并不 ...

  3. 基于cuda10.0的pytorch深度学习环境配置

    基于cuda10.0的pytorch深度学习环境配置(报错解决) 1.首先查看自己nvidia 显卡的版本,一般都能适用cuda10.0: 1.打开win+s 搜索nvidia控制面版,查看系统信息 ...

  4. 【PyTorch深度学习项目实战100例】—— 基于ResNet50实现多目标美味蛋糕图像分类 | 第51例

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  5. 【PyTorch深度学习项目实战100例】—— 基于CNN实现书法字体风格识别任务 | 第62例

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  6. PyTorch深度学习-跟着小土堆学习

    目录 学习视频链接 一些问题 P4:Python/PyTorch学习中两大法宝函数-dir().help() P5:PyCharm及Jupyter使用及对比 P6:PyTorch加载数据初认识 P7: ...

  7. 【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  8. 【PyTorch深度学习项目实战100例】—— Python+OpenCV+MediaPipe手势识别系统 | 第2例

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

  9. 【PyTorch深度学习项目实战100例】—— 基于聚类算法完成航空公司客户价值分析任务 | 第18例

    前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...

最新文章

  1. python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息
  2. filter vue 循环_Vue - 基础
  3. session开启慢的原因及解决办法
  4. Timus Online Judge:ural:1006. Square Frames
  5. python注释_python中的单行注释、多行注释
  6. 事件EVENT,WaitForSingleObject(),WaitForMultipleObjecct()和SignalObjectAndWait() 的使用(下)
  7. Go语言编程—Go语言中JSON的处理(map、struct 和 JSON字符串的相互转换)
  8. 的table数据重复添加_Excel中的超级表Table详细介绍(一)
  9. mysql密码加强_MySQL密码增强插件
  10. ACL访问控制 getfacl 、setfacl 命令
  11. Qt echarts 教程(2):qt echarts 数据动态绑定
  12. 需求分解与需求跟踪矩阵
  13. 开通支付宝小程序收款功能
  14. HDL4SE:软件工程师学习Verilog语言(七)
  15. 微信php echo换行,微信小程序文字显示换行问题
  16. windows 防火墙开启导致ping不通
  17. java中双冒号的用法
  18. 【精华】OCR关键信息提取之SER和RE
  19. 整理2020java面试题
  20. 计算机毕业设计之java+ssm基于协同过滤算法的图书推荐系统

热门文章

  1. 【sdx62】PBL阶段修改GPIO操作
  2. CSS图片保持原比例
  3. 一卡通变“一脸通”,人脸识别让校园更安全
  4. python之abc和six
  5. 网站如何锁定用户,超级浏览器有办法解决吗?
  6. 解决数据库高并发的常见方案
  7. 分析数万旅游评论,告诉你国庆景点背后的秘密!
  8. pc投屏android软件,Scrcpy安卓电脑投屏软件下载
  9. React Native开发之动画(Animations)
  10. 最简单的验证码(利用JSP生成验证码)