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

告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本

告别环境焦虑用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本深度学习框架的版本冲突问题一直是开发者心中的痛。你是否经历过这样的场景昨天还能正常运行的 TensorFlow 项目今天更新了 CUDA 驱动后就报错或者同事分享的 JAX 代码在你的机器上就是无法执行这些问题的根源往往在于系统级的环境污染和依赖混乱。Conda 作为 Python 生态中最强大的环境管理工具能够为每个项目创建完全隔离的虚拟环境从根本上解决依赖地狱问题。本文将带你用 Conda 在 Ubuntu 系统上构建多个独立环境分别运行 JAX 的 CPU/GPU 版本、TensorFlow 2.x 以及 TensorRT无需担心版本冲突真正做到一键切换。1. 环境准备Conda 基础配置1.1 安装 MinicondaMiniconda 是 Anaconda 的轻量版只包含 Conda 和 Python 等核心组件。在 Ubuntu 上安装wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装完成后需要重新加载 shell 配置source ~/.bashrc验证安装conda --version1.2 配置 Conda 镜像源为加速国内下载建议配置清华镜像源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes提示conda-forge 频道包含大量预编译的科学计算包建议始终启用2. 创建 JAX 专用环境2.1 JAX CPU 版本环境创建名为jax-cpu的环境conda create -n jax-cpu python3.9 conda activate jax-cpu安装 JAX CPU 版本conda install -c conda-forge jax jaxlib验证安装import jax print(jax.devices()) # 应显示 CPU 设备2.2 JAX GPU 版本环境创建名为jax-gpu的新环境conda create -n jax-gpu python3.9 conda activate jax-gpu通过 conda-forge 安装带 CUDA 支持的 JAXconda install -c conda-forge jax jaxlib cuda-nvcc cuda-cudart检查 GPU 支持import jax print(jax.devices()) # 应显示 GPU 设备注意Conda 会自动处理 CUDA 和 cuDNN 的版本匹配无需手动安装系统级驱动3. 管理 TensorFlow 多版本环境3.1 TensorFlow 2.12 环境创建并激活环境conda create -n tf-2.12 python3.9 conda activate tf-2.12安装 TensorFlow GPU 版本conda install -c conda-forge tensorflow2.12 cudatoolkit11.8 cudnn8.6验证安装import tensorflow as tf print(tf.config.list_physical_devices(GPU))3.2 TensorFlow 与 TensorRT 集成在已有 TensorFlow 环境中添加 TensorRT 支持conda install -c nvidia tensorrt配置环境变量建议写入~/.bashrcexport LD_LIBRARY_PATH$LD_LIBRARY_PATH:$CONDA_PREFIX/lib测试 TensorRT 加速from tensorflow.python.compiler.tensorrt import trt_convert as trt # 构建转换器示例 converter trt.TrtGraphConverterV2(input_saved_model_dirsaved_model) converter.convert() converter.save(optimized_model)4. 环境管理高级技巧4.1 环境克隆与共享克隆现有环境适用于团队协作conda create --name tf-2.12-clone --clone tf-2.12导出环境配置生成environment.yml文件conda env export -n tf-2.12 tf-2.12.yml他人可通过该文件复现相同环境conda env create -f tf-2.12.yml4.2 环境清理与优化查看所有环境conda env list删除不再需要的环境conda remove --name old-env --all清理缓存包conda clean --all4.3 环境快速切换方案使用conda-auto-env实现目录自动切换环境conda install -c conda-forge conda-auto-env echo conda_auto_env ~/.bashrc然后在项目目录创建.autoenv文件内容为conda activate my-project-env5. 常见问题解决方案5.1 CUDA 版本冲突处理当出现 CUDA 相关错误时检查环境中的 CUDA 组件conda list | grep cuda典型输出示例cudatoolkit 11.8.0 h37601d7_0 conda-forge cudnn 8.6.0.163 cuda11.8_0 conda-forge5.2 环境启动失败修复如果环境无法激活尝试重建环境索引conda index ~/miniconda3/pkgs5.3 混合使用 Conda 和 Pip当某些包只能通过 pip 安装时建议流程先通过 conda 安装尽可能多的依赖最后使用 pip 安装剩余包记录所有 pip 安装的包pip freeze requirements.txt重要避免在 conda 环境中直接使用pip install安装本应通过 conda 安装的包6. 性能对比与最佳实践6.1 Conda 与 Pip 安装对比特性Conda 安装Pip 安装依赖解决跨语言自动解决仅 Python 包CUDA 管理自动匹配版本需手动系统安装环境隔离完全隔离依赖系统环境磁盘占用较大包含依赖较小适用场景复杂科学计算环境简单 Python 项目6.2 环境配置推荐方案针对不同使用场景的建议个人开发每个项目独立环境使用 conda-forge 频道环境名反映主要框架和版本如tf2.12-jax0.4团队协作共享environment.yml统一 CUDA 版本建议使用相同 Linux 发行版生产部署使用 Docker 封装 Conda 环境固定所有包版本禁用环境自动更新conda install --freeze-installed package_name # 禁止自动升级依赖6.3 环境备份策略建议的备份方案定期导出环境配置conda env export --no-builds -n my-env my-env.yml备份 Conda 包缓存tar -czvf conda_pkgs_backup.tar.gz ~/miniconda3/pkgs/使用 conda-pack 创建可移植环境conda install -c conda-forge conda-pack conda pack -n my-env -o my-env.tar.gz

相关文章:

告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本

告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本 深度学习框架的版本冲突问题,一直是开发者心中的痛。你是否经历过这样的场景:昨天还能正常运行的 TensorFlow 项目,今天更新了 CUDA 驱动后就…...

实验室新到Franka机器人?保姆级Ubuntu20.04+ROS Noetic配置避坑指南

Franka机器人开箱配置全攻略:Ubuntu 20.04与ROS Noetic深度适配指南 当实验室那台崭新的Franka Emika机械臂拆箱时,整个团队都围了上来——这台价值不菲的协作机器人即将成为我们最重要的研究伙伴。但很快我们就发现,从开箱到真正让机械臂流畅…...

【亲测免费】 Teigha各版本使用汇总

Teigha各版本使用汇总 【下载地址】Teigha各版本使用汇总 这份汇总不仅提供了这些版本的下载链接,更重要的是,它详细记录了在C#环境下,特别是使用VS2010作为开发平台时,针对每个版本的测试与使用经验。无论是构建Web应用程序还是W…...

长期使用Taotoken聚合服务对开发效率的实际提升感受

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken聚合服务对开发效率的实际提升感受 作为一名在多个项目中集成大模型能力的开发者,我过去需要为不同的…...

【免费下载】 PyTorch框架入门PPT下载

PyTorch框架入门PPT下载 【下载地址】PyTorch框架入门PPT下载 PyTorch框架入门PPT下载 项目地址: https://gitcode.com/open-source-toolkit/a64b8 资源介绍 本仓库提供了一个名为“PyTorch框架入门PPT”的资源文件下载。该PPT文件旨在帮助初学者快速入门PyTorch框架&a…...

【亲测免费】 电机速度闭环控制(代码详细注释)

电机速度闭环控制(代码详细注释) 【下载地址】电机速度闭环控制代码详细注释 本仓库提供了电机速度闭环控制的实践教程,特别适合对电机控制、尤其是PID控制算法感兴趣的学习者。PID控制是一种广泛应用于工程领域的闭环控制策略,能…...

【免费下载】 华为光猫超级用户名密码获取工具

华为光猫超级用户名密码获取工具 【下载地址】华为光猫超级用户名密码获取工具 华为光猫超级用户名密码获取工具是一款专为华为光猫设计的辅助工具,主要用于获取光猫的VLAN ID。该工具通过将一系列命令编写成批处理文件,实现自动化执行,无需用…...

【亲测免费】 UPX脱壳机资源下载

UPX脱壳机资源下载 【下载地址】UPX脱壳机资源下载 UPX脱壳机资源下载本仓库提供了一个名为“upx脱壳机”的资源文件下载 项目地址: https://gitcode.com/open-source-toolkit/3cfe1 本仓库提供了一个名为“upx脱壳机”的资源文件下载。该资源文件是一个名为“HA_UPXShe…...

【免费下载】 青藏高原矢量边界数据下载

青藏高原矢量边界数据下载 【下载地址】青藏高原矢量边界数据下载 青藏高原矢量边界数据下载 项目地址: https://gitcode.com/open-source-toolkit/7d915 数据简介 本仓库提供青藏高原的矢量边界数据下载。该数据可在ARCGIS中直接导入并打开,附带坐标系统信…...

【亲测免费】 STM32F103CAN双机通信程序

STM32F103CAN双机通信程序 【下载地址】STM32F103CAN双机通信程序 本项目是专为嵌入式开发者设计的,特别是针对那些对STM32微控制器及CAN总线通信协议感兴趣的开发者。STM32F103系列芯片以其高性能、低功耗的特点广泛应用于工业控制、汽车电子等领域。此份资源集合了…...

从沙子到车辙(1.3):图灵的答案

1.3 图灵的答案 那个跑步穿过剑桥的人 1935 年,剑桥大学国王学院。一个 23 岁的研究生躺在草地上,望着天空,想着一件事: 什么是"计算"? 他叫艾伦图灵(Alan Turing)。 这个年轻人…...

【亲测免费】 罗氏线圈与积分器介绍

罗氏线圈与积分器介绍 【下载地址】罗氏线圈与积分器介绍 罗氏线圈与积分器介绍 项目地址: https://gitcode.com/open-source-toolkit/e480d 资源文件概述 本资源文件详细介绍了罗氏线圈及其相关积分器的原理、制作工艺以及工业应用。内容涵盖了罗氏线圈的基本概念、刚…...

ElementPlus el-tabs样式踩坑全记录:从‘这怎么改’到‘原来如此’的心路历程

ElementPlus el-tabs样式深度定制实战:从困惑到精通的全过程解析 第一次在产品需求文档里看到"标签页要设计得与众不同"时,我完全没意识到这个看似简单的需求会让我在ElementPlus的样式迷宫里转了三天的圈。作为团队里负责后台管理系统重构的前…...

JPEG2000在Matlab中的实现源码

JPEG2000在Matlab中的实现源码 【下载地址】JPEG2000在Matlab中的实现源码 JPEG2000在Matlab中的实现源码欢迎来到JPEG2000的Matlab实现资源页面 项目地址: https://gitcode.com/open-source-toolkit/0665cd 欢迎来到JPEG2000的Matlab实现资源页面。本资源旨在提供一套完…...

JLink V9.5 固件资源包

JLink V9.5 固件资源包 【下载地址】JLinkV9.5固件资源包 JLink V9.5 固件资源包欢迎使用JLink V9.5全套固件资源 项目地址: https://gitcode.com/open-source-toolkit/4bb56 欢迎使用JLink V9.5全套固件资源。本资源包专为那些需要对JLink调试器进行固件升级和自定义配…...

51单片机控制LED灯实现流水灯效果(程序+Proteus仿真)

51单片机控制LED灯实现流水灯效果(程序Proteus仿真) 【下载地址】51单片机控制LED灯实现流水灯效果程序Proteus仿真 本资源提供了一个完整的项目,使用51单片机控制LED灯实现流水灯效果。资源内容包括Keil5 C语言程序和Proteus软件仿真文件&am…...

【亲测免费】 基于深度学习的计算机视觉PPT

基于深度学习的计算机视觉PPT 【下载地址】基于深度学习的计算机视觉PPT 本仓库提供了一份名为“基于深度学习的计算机视觉PPT”的资源文件,该文件详细介绍了计算机视觉的基本概念、理论基础以及深度学习在计算机视觉中的应用。计算机视觉是一门研究如何使机器“看”…...

用51单片机+DAC0832做个信号发生器:5种波形可调,附Proteus仿真和Keil源码

51单片机DAC0832信号发生器实战指南:从硬件搭建到波形调频 在电子设计领域,信号发生器是基础但极其重要的工具。传统商用设备往往价格昂贵且功能固定,而基于51单片机和DAC0832的自制信号发生器不仅成本低廉,还能根据需求灵活定制。…...

多智能体强化学习安全约束冲突解决方案

1. 多智能体强化学习中的安全约束冲突问题解析在机器人集群协同作业、无人机编队飞行、自动驾驶车队等实际场景中,多智能体系统面临着复杂的安全挑战。想象一下繁忙机场的跑道调度场景:数十架无人机需要在有限空域内完成起降、巡航和避让,任何…...

架构实战:面向特种设备合规的非侵入式机器人跨层调度解耦设计

摘要: 在智能园区的多机协同配送业务中,如果上位机调度系统直接与底层品牌各异的电梯强耦合,不仅研发适配成本高,且入侵特种设备总线的方案极难通过国家特种设备检验局的安全审核。面对合规双重限制,架构师亟需一种高度…...

【亲测免费】 为你的C Winform项目增添亮色:C Winform图标资源库推荐

为你的C# Winform项目增添亮色:C# Winform图标资源库推荐 【下载地址】CWinform图标资源库 C# Winform 图标资源库本仓库提供了一系列适用于 C# Winform 程序开发的图标资源,包括 ico 和 png 格式,尺寸涵盖 16x16、32x32 等多种常用大小 项…...

STM32驱动WS2812灯珠颜色错乱?可能是你的GRB顺序和位序搞反了!

STM32驱动WS2812灯珠颜色错乱?GRB顺序与位序的深度解析 当你第一次用STM32成功点亮WS2812灯珠时,那种成就感难以言表。但紧接着,你可能遇到了一个令人困惑的问题:明明在代码里设置了纯红色(255, 0, 0)&…...

【亲测免费】 Realtek-RTD2660源代码:开启显示设备定制化的新纪元

Realtek-RTD2660源代码:开启显示设备定制化的新纪元 【下载地址】Realtek-RTD2660源代码源程序 本仓库提供Realtek-RTD2660源代码源程序的下载。该资源文件适用于7至19寸的显示设备,为开发者提供了完整的源代码,方便进行二次开发和定制 项目…...

【亲测免费】 探索RS485通信的利器:开源项目推荐

探索RS485通信的利器:开源项目推荐 【下载地址】RS485通信程序 本仓库提供了一个完整的RS485通信程序,经过本人亲自测试,程序注释详细,非常适合作为学习和开发的参考例程。无论你是初学者还是有经验的开发者,这个资源都…...

零基础玩转Linux:CentOS安装、Xshell连接与文件权限全攻略

零基础玩转Linux:CentOS安装、Xshell连接与文件权限全攻略 目录 1、Linux系统简介 2、安装Linux 3、Linux相关配制 3.1 配制静态IP 3.2 安装Linux终端 3.3 安装ftp 3.4、Linux目录结构 4、Linux基本命令 4.1、关机与重启 4.2、文件与目录 4.3、日期与日历 4.4、帮助指令 4.5、…...

【免费下载】 高效演示必备:PPT倒计时小工具推荐

高效演示必备:PPT倒计时小工具推荐 【下载地址】PPT倒计时小工具 本仓库提供了一个专为PPT设计的倒计时小工具,该工具可以直接加载到PPT中使用,方便用户在演示过程中进行时间管理。与传统的倒计时工具不同,这个小工具完全集成在PP…...

【亲测免费】 探索VBA编程的利器:VBA参考手册(CHM)

探索VBA编程的利器:VBA参考手册(CHM) 【下载地址】VBA参考手册chm 本仓库提供了一个VBA参考手册的下载资源,文件格式为CHM(Compiled HTML Help)。该手册是学习和使用VBA(Visual Basic for Applications)的重…...

告别‘悲’:当AssetStudio遇到加密的AssetBundle,试试这几款替代工具(附实战对比)

突破加密壁垒:Unity资源逆向工程全工具链实战指南 当AssetStudio面对加密的AssetBundle时,开发者常陷入困境。本文将系统梳理Unity资源逆向工程的完整解决方案,从基础提取到高级解密技术,提供一套可落地的工具链选择策略。 1. 加密…...

【亲测免费】 PLC1200四路抢答器程序:打造高效公平的抢答体验

PLC1200四路抢答器程序:打造高效公平的抢答体验 【下载地址】PLC1200四路抢答器程序 本仓库提供了一个完整的S7-1200四路抢答器程序,可以直接下载并使用。该程序适用于需要进行四路抢答的场景,如竞赛、培训等。程序经过精心设计和测试&#x…...

复古CRT电视改造:用RF调制器连接树莓派与现代电脑

1. 项目概述:当太空时代美学遇见现代计算几年前,我在一个复古科技展上第一次见到JVC Videosphere,那个圆润的球面屏幕和未来感十足的造型瞬间击中了我。它诞生于上世纪70年代,是那个太空竞赛黄金时期工业设计的缩影。但和大多数老…...