目录

前言:

一、具体实现:

二、关键技术解析

路径动态拼接

安全目录创建

环境变量魔法

迁移条件检查

三、代码实现:


前言:

        当模型文件下载到本地c盘的默认路径时,可用以下代码的形式进行文件位置的迁移。

一、具体实现:

以下Python脚本完美解决上述问题,核心流程如图:

二、关键技术解析

  1. 路径动态拼接

    target_path = os.path.join(project_dir, "xxxx.pth")

    使用os.path.join确保跨平台路径兼容性

  2. 安全目录创建

    os.makedirs(project_dir, exist_ok=True)

    exist_ok=True参数避免目录已存在时报错

  3. 环境变量魔法

    os.environ['TORCH_HOME'] = os.path.dirname(project_dir)

    通过设置TORCH_HOME永久改变缓存根目录(进程级生效)

  4. 迁移条件检查

    • 源文件存在且目标文件不存在 → 执行迁移

    • 目标文件已存在 → 跳过迁移

    • 源文件不存在 → 提示下载

三、代码实现:

import os
import shutil
import torch
import torchvision.models as models# 源文件路径(你的缓存目录)
source_path = r"C:\Users\14844\.cache\torch\hub\checkpoints\xxxxx.pth"# 目标路径(你的项目目录)
project_dir = r"E:\Pycharm\project\xxxx\models"
target_path = os.path.join(project_dir, "xxxxx.pth")# 创建目标目录(如果不存在)
os.makedirs(project_dir, exist_ok=True)# 移动模型文件
if os.path.exists(source_path) and not os.path.exists(target_path):print(f"正在将模型从 {source_path} 移动到 {target_path}...")shutil.move(source_path, target_path)print("模型移动完成!")
elif os.path.exists(target_path):print(f"模型已存在于 {target_path},无需移动。")
else:print(f"源模型文件不存在:{source_path}")print("请确保模型已正确下载。")# 更新环境变量,指向新的模型位置
os.environ['TORCH_HOME'] = os.path.dirname(project_dir)# 测试加载模型
try:print("\n正在测试加载模型...")vgg = models.vgg19(pretrained=True)print("模型加载成功!程序可以正常运行。")
except Exception as e:print(f"模型加载失败:{e}")print("请检查路径是否正确或尝试重新下载模型。")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87411.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87411.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/87411.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 机器学习核心入门与实战进阶 Day 2 - KNN(K-近邻算法)分类实战与调参

✅ 今日目标 理解 KNN 的原理与“以邻为近”的思想掌握 K 值选择与模型效果的关系学会使用 sklearn 训练 KNN 模型实现 KNN 分类 模型评估 超参数调优 📘 一、KNN 算法原理 KNN(K-Nearest Neighbors)核心思想: 给定一个待预测…

pppoe宽带连接-系列命令调用

以下是对PPPoE相关命令的详细解释及用法说明: 1. pppoe 功能:PPPoE基础工具集,通常作为其他命令的底层依赖。 用法:一般不直接使用,而是通过pppoe-*系列命令调用。 2. pppoe-connect 功能:建立PPPoE连接…

C# 合并两个byte数组的几种方法

1. 使用 Array.Copy 方法(高效推荐)byte[] array1 { 1, 2, 3 }; byte[] array2 { 4, 5, 6 };byte[] combined new byte[array1.Length array2.Length]; Array.Copy(array1, 0, combined, 0, array1.Length); Array.Copy(array2, 0, combined, array1…

Spring AI 源码

目录 Spring AI 介绍 Spring AI 组件介绍 Spring AI 结构化输出 Srping AI 多模态 Spring AI 本地Ollama Spring AI 源码 Spring AI Advisor机制 Spring AI Tool Calling Spring AI MCP Spring AI RAG Spring AI Agent Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是…

钉钉企业应用开发系列:前端实现自定义右上角菜单(dd.http + Vue3)

本文将围绕“如何在钉钉企业应用中自定义右上角菜单”这一主题进行讲解,并结合现代前端技术栈(Vue3 Composition API)展示完整实现过程,帮助你快速构建具备原生交互体验的企业应用。一、前置准备1. 注册钉钉开发者账号并创建应用…

STC8H驱动两相四线步进电机

两相步进电机, STC8H系列 用高级PWM实现SPWM细分驱动 /************* 功能说明 ************** 用B组高级PWM细分驱动2相4线小型步进电机, 支持1、2、4、8、16、32、64细分, 比如1.8度的电机4细分到0.45度. 本程序用于演示SPWM多细分直接驱动2相4线小型步进电机…

读书笔记:《DevOps实践指南》

《DevOps实践指南》 美 Gene Kim, Jez Humble, Patrick Debois, John Willis 著;刘征,王磊,马博文,曾朝京 译 个人理解: 向客户交付价值,快速、高效、高质量交付 信息全流程共享、全过程参与、关注软件…

创客匠人视角:创始人 IP 从流量狂欢到价值深耕的蜕变之路

在知识付费行业浪潮中,创客匠人深耕九年,见证了无数 “一夜爆红” 与 “迅速陨落” 的案例。从 “菏泽树哥” 的流量泡沫,到天水麻辣烫的短暂热度,这些现象折射出行业发展的阶段性特征,也促使创始人 IP 打造的底层逻辑…

ArchLinux:别样的btrfs log tree修复大赛(errno=-5 IO failure Failed to recover log tree)

archlinux 简明指南本指南包含 archlinux 安装、配置、维护等,帮助新手快速上手https://arch.icekylin.online/一个月黑风高的上午:美滋滋的打开电脑进grub选择arch启动 欸!突然就卡在这里了,系统进了rootfs,并且长按电…

Laravel8中使用phpword生成word文档

最近在开发有关考试试卷相关的内容,需要生成试卷的word文档并下载。 这里用到了phpoffice/phpword插件,这里记录下一些开发过程中注意的点。 1.安装phpoffice/phpword composer require phpoffice/phpword2.准备一个word模板方便向其中写入需要生成的内容…

spring-ai-alibaba官方 Playground 示例

1、Spring AI Alibaba 官方社区开发了一个包含完整 “前端UI后端实现” 的智能体 Playground 示例,示例使用 Spring AI Alibaba 开发,可以体验聊天机器人、多轮对话、图片生成、多模态、工具调用、MCP集成、RAG知识库等所有框架核心能力。 2、界面 3、准…

k8s pod深度理解

一、理论 pod等同于逻辑主机,在它上面运行各种程序(容器) pod的pause容器作用,pod网络、存储 所有容器的父容器,负责回收僵尸容器,同时它为pod中的容器提供了统一的网络及统一的共享存储。 pod的endpoint…

Android Auto即将带来变革

在2025年谷歌I/O开发者大会上,Android Auto迎来重磅升级。除了集成Gemini智能助手外,本次更新还突破性地为车载信息娱乐系统新增了浏览器和视频应用支持。值得注意的是,Spotify应用也将获得一系列创新功能,进一步丰富用户的驾驶体…

Jenkins 与 GitLab CI/CD 的核心对比

Jenkins 与 GitLab CI/CD 的核心对比及中小企业选型建议如下: 🔄 ‌核心功能对比‌ ‌维度‌‌Jenkins‌‌GitLab CI/CD‌‌集成性‌需手动配置插件对接代码仓库(如 GitLab)原生深度集成 GitLab 仓库,实现代码-CI/CD …

每日问题总结

fairy GUI适配相关问题 为什么自己适配好了但是打包发布到unity没有UI显示呢? 原因可能是你发布的组件和图片不在同一个包下面,因为fairyGUI的分包限制问题,每一个包限制在2048M大小。不能超过这个大小,所以说,有可能…

embbding you should know

embedding:就是将词向量或者图向量 采用权重升维度,更好的去表达这个特征;nn.Embedding 是 PyTorch 中的 查表式嵌入层(lookup‐table),用于将离散的整数索引(如词 ID、实体 ID、离散特征类别等…

【JS-6.2-模板字符串】ES6 模板字符串:现代JavaScript的字符串处理利器

在ES6(ECMAScript 2015)引入的所有新特性中,模板字符串(Template Literals)可能是最直观、最容易被开发者接受并广泛使用的特性之一。它彻底改变了我们在JavaScript中处理字符串的方式,提供了更强大、更灵活的字符串操作能力。本文将深入探讨模板字符串的…

百度捂紧“钱袋子”

何俊杰依然是李彦宏手里最能用、也最信得过的人之一。 作者|景行 编辑|文昌龙 李彦宏的OKR又兑现了一条。年初他在组织建设的OKR里放话“组织负责人进一步年轻化,提倡赛马”,如今“赛马”跑来了百度新CFO。 7月1日,李彦宏发全员邮件&#…

刷卡登入数据获取

1.WPF刷卡登入数据获取&#xff0c;防止用户手动输入 //WPF输入框信息及触发命令<StackPanel Orientation"Vertical" VerticalAlignment"Center" Margin"0 30" Visibility"{Binding LoginMode,Converter{StaticResource loginModeWit…

DPO训练中的logit scale 与 reward shift 偏置问题以及可能的解决方案

Logit Scale Bias&#xff08;Logit 放缩偏置&#xff09; 定义&#xff1a; Logit scale 偏置指的是&#xff0c;不同模型&#xff08;如 Actor 与 Reference&#xff09;之间输出的 logit 的数量级&#xff08;scale&#xff09;不一致&#xff0c;导致 log-prob 或 log-rati…