pytorch 模型下载,from torchvision.datasets.utils import download_url不能下载模型,如何代理

1. torchvision.datasets.utils.download_url的代理

找到对应的文件/root/data1/anaconda3/envs/decouple_diffusion/lib/python3.12/site-packages/torchvision/datasets/utils.py

修改前:

python 复制代码
def _get_redirect_url(url: str, max_hops: int = 3) -> str:
    initial_url = url
    headers = {"Method": "HEAD", "User-Agent": "USER_AGENT"}

    for _ in range(max_hops + 1):
        with urllib.request.urlopen(urllib.request.Request(url, headers=headers)) as response:
            if response.url == url or response.url is None:
                return url

            url = response.url
    else:
        raise RecursionError(
            f"Request to {initial_url} exceeded {max_hops} redirects. The last redirect points to {url}."
        )

修改后:

python 复制代码
def _get_redirect_url(url: str, max_hops: int = 3) -> str:
    initial_url = url
    headers = {"Method": "HEAD", "User-Agent": "USER_AGENT"}

    # 设置代理
    proxy_handler = urllib.request.ProxyHandler({
        'http': 'http://192.168.155.245:19970',
        'https': 'http://192.168.155.245:19970'  # 如果需要支持 HTTPS
    })
    opener = urllib.request.build_opener(proxy_handler)
    urllib.request.install_opener(opener)

    for _ in range(max_hops + 1):
        with urllib.request.urlopen(urllib.request.Request(url, headers=headers)) as response:
            if response.url == url or response.url is None:
                return url

            url = response.url
    else:
        raise RecursionError(
            f"Request to {initial_url} exceeded {max_hops} redirects. The last redirect points to {url}."
        )

修改点说明:

  1. ProxyHandler 配置代理:

    设置 http 和 https 的代理地址。

  2. build_opener 和 install_opener:

    使用 build_opener 构建带有代理的处理器。
    使用 install_opener 让后续的 urlopen 请求使用代理。

  3. 兼容 HTTPS 请求:

    如果目标 URL 包括 HTTPS,确保设置 https 的代理。

2. 推荐:如果不想修改安装包的内部文件,可以在程序运行最开始设置

例如运行python main.py,在main.py 主文件最开始设置:

python 复制代码
import urllib.request

# 设置代理
proxy_handler = urllib.request.ProxyHandler({
    'http': 'http://192.168.155.245:19970',
    'https': 'http://192.168.155.245:19970'  # 如果需要支持 HTTPS
})
opener = urllib.request.build_opener(proxy_handler)
urllib.request.install_opener(opener)

3. from_pretrained 的代理

python 复制代码
vae = AutoencoderKL.from_pretrained(f"stabilityai/sd-vae-ft-{args.vae}",proxies={'http': 'http://192.168.155.xxx:19970','https': 'http://192.168.155.xxx:19970'}).to(device)
相关推荐
剑穗挂着新流苏3127 小时前
201_深度学习的数学底座:PyTorch 线性代数与范数实战
pytorch·深度学习·线性代数
盼小辉丶7 小时前
PyTorch实战(38)——深度学习模型可解释性
人工智能·pytorch·深度学习
香芋超新星8 小时前
服务器根目录爆满导致 PyTorch 安装失败(Errno 28 No space left on device)
服务器·pytorch·深度学习
剑穗挂着新流苏3129 小时前
200_深度学习的地基:PyTorch 数据操作与 Pandas 预处理实战
人工智能·pytorch·python·深度学习
独隅10 小时前
MacOS 上部署 PyTorch 模型的详细步骤
人工智能·pytorch·macos
张老师带你学21 小时前
UnityVR弯曲UI
科技·游戏·unity·游戏引擎·模型
张老师带你学1 天前
unity作业,街角小场景
科技·游戏·unity·游戏引擎·模型
魔士于安1 天前
Unity太空战舰完整工程,包含战损,实时战损
游戏·unity·游戏引擎·贴图·模型
蛐蛐蛐1 天前
在openEuler(昇腾平台)上基于Conda安装CANN和PyTorch的完整过程
人工智能·pytorch·conda
fundoit1 天前
Windows 下 PyTorch 环境搭建指南
人工智能·pytorch·windows