当前位置: 首页 > wzjs >正文

北京网站建设方案书培训机构是干什么的

北京网站建设方案书,培训机构是干什么的,橙子建站网,福田商城网站建设哪家便宜文章目录 背景原因解决方案 背景 很简单,我网上下载了一个模型文件,现在想读取这个模型,然后将这个模型用在我的数据集上。 import torch modeltorch.load("model.pyt")#这步直接报错了。 outputmodel(mydata)报错了。 ModuleNot…

文章目录

      • 背景
      • 原因
      • 解决方案

背景

很简单,我网上下载了一个模型文件,现在想读取这个模型,然后将这个模型用在我的数据集上。

import torch
model=torch.load("model.pyt")#这步直接报错了。
output=model(mydata)

报错了。

ModuleNotFoundError: No module named ‘models‘

原因

我现在项目的目录结构和model.pyt这个模型文件当初在保存torch.save的时候的项目目录不一致,导致导入load模型的时候有一些关键东西缺失。

啥意思呢?假设当初模型保存torch.save的文件长成这样。

import torch
from A import Model
model=Model()
torch.save(model,"model.pyt")

保存在model.pyt中的东西,大家都知道,有模型权重,模型结构等。但是大家想过这样一个问题没有,如果模型里面的一个函数引用了另外一个用户自定义的函数,在torch.save之后,这个自定义函数会被保存吗?答案是不会被保存。也就是说,对于上面的代码,

import torch
from A import Model

torch这个库不会被保存,A这个文件也不会被保存。那么自然,等我们torch.load的时候,A就会找不到,torch可以找到,因为我们本地肯定会导入torch

为啥Pytorch设计的时候不保存这些呢?很简单,就怕模型里面的一个函数引用了另外一个用户自定义的函数,然后这个自定义函数又引用另外一个,然后没玩没了。更怕的是,自定义函数里面还导入了一些非常大的数据,如果全部保存起来,model.pyt得多么大呀!

解决方案

一种方法当然就是把他的原项目下载下来,这包括了他的代码文件,而不能像我一样只下载模型文件。

其实,在load的时候Pytorch已经提示我们了,虽然只是一个warning。

FutureWarning: You are using torch.load with weights_only=False (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for weights_only will be flipped to True. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via torch.serialization.add_safe_globals. We recommend you start setting weights_only=True for any use case where you don’t have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.

官方不建议torch.save(model,"model.pyt")这种保存方式,比较推荐torch.save(model.state_dict(),"model.pyt"),也就是只保存模型权重,其他的一律不保存。这样,强制了你去下载代码文件,不然下面第一行代码Model()会报错。

model = Model()
state_dict = torch.load('model.pyt')
model.load_state_dict(state_dict)#载入训练好的权重。
http://www.dtcms.com/wzjs/191312.html

相关文章:

  • 上海网站建设永灿14年品牌百度指数排名明星
  • 检察门户网站 建设意义百度关键词搜索指数查询
  • 做算命网站网站建设案例
  • 可信网站 quot 验证能防范哪些安全.广西壮族自治区免费百度推广
  • 网站utf8乱码微营销官网
  • 做网站为什么要公安局备案最全磁力搜索引擎
  • 北京网站制作百度推广关键词排名代发
  • 南宁网站建设 超博网络百度广告联盟一个月能赚多少
  • 做物流的网站都有什么风险网络营销课程大概学什么内容
  • 网站构建代码模板seo学堂
  • 十大必做调查网站营销网页
  • 郑州制作网站设计免费自助建站
  • 怀远网站建设哪家好培训心得体会万能模板
  • 高端的网站开发公司电子商务网站设计方案
  • 西安网站制作sxyun百度一下百度搜索网站
  • 博学网站建设公司百度关键词优化首选667seo
  • php是用来做网站的吗如何搜索网页关键词
  • 网站建设开发软件seo推广优化工具
  • 官方网站模板网络商城应该如何推广
  • 做网站的知识德州百度推广公司
  • 安徽省建设质量安全协会网站友情链接站长平台
  • 虹口区网站建设什么推广方法是有效果的
  • 电商网站建设方面的毕业设计seo网站制作优化
  • 成都设计公司展览站内seo内容优化包括
  • 做网站前期创建文件夹群站优化之链轮模式
  • 做网站域名需哪些网络营销软文范例500字
  • 沭阳那家做网站的新闻头条最新消息30字
  • 自适应网站开发seo排名点击软件推荐
  • 2008r2做网站深圳小程序开发公司
  • 做网站个人广州seo工作