基于VMware虚拟机搭建DeOldify本地开发测试环境
基于VMware虚拟机搭建DeOldify本地开发测试环境想试试给老照片上色但手头没有云GPU服务器自己的电脑配置又不够别急今天就来分享一个“曲线救国”的实用方案在VMware虚拟机里搭建一个完整的DeOldify开发测试环境。DeOldify是一个基于深度学习的开源项目能让黑白照片和视频焕发色彩。不过它依赖GPU进行加速计算这让很多没有独立显卡或显卡性能不足的朋友望而却步。通过VMware虚拟机我们可以在一台性能尚可的Windows或Linux主机上创建一个独立的Ubuntu系统并让虚拟机“借用”主机的NVIDIA显卡资源从而顺利运行DeOldify。听起来有点技术含量别担心这篇教程会一步步带你走完整个过程从安装VMware到最终看到上色效果。我们假设你是一位有一定动手能力的开发者或技术爱好者但对虚拟化和深度学习环境搭建并不十分熟悉。跟着做你就能在自己的电脑上低成本地体验AI修复老照片的魅力。1. 准备工作与环境概览在开始动手之前我们先来理清整个方案的思路和需要准备的东西。核心目标是在你的个人电脑我们称之为“宿主机”上通过VMware Workstation Pro软件虚拟出一台运行Ubuntu系统的电脑“虚拟机”并让这台虚拟机能够使用宿主机的NVIDIA显卡来运行DeOldify。你需要准备的东西一台性能尚可的电脑宿主机这是基础。建议CPU是英特尔i5或AMD Ryzen 5及以上内存至少16GB因为虚拟机要分走一部分并且最关键的是必须有一块NVIDIA独立显卡。集成显卡或AMD显卡目前在这个方案中支持不佳。你可以通过任务管理器或“设备管理器”查看自己的显卡型号。VMware Workstation Pro软件我们将使用它来创建和管理虚拟机。你可以从VMware官网下载试用版。Ubuntu系统镜像我们将选用Ubuntu 20.04 LTS版本这是一个长期支持版社区资源丰富兼容性好。可以从Ubuntu官网下载ISO文件。稳定的网络连接在安装系统和后续配置时需要下载不少软件包。整个流程可以概括为以下几个大步骤我们会逐一展开安装VMware并创建Ubuntu虚拟机。在虚拟机中安装NVIDIA显卡驱动和CUDA工具包。配置Python和项目所需的深度学习框架。下载并运行DeOldify项目测试上色效果。过程中可能会遇到一些“坑”比如显卡直通PCI Passthrough的配置我们也会提供详细的解决方案。好了话不多说我们开始吧。2. 第一步安装VMware与创建Ubuntu虚拟机首先我们需要在宿主机上搭建好“虚拟化”的舞台。2.1 下载并安装VMware Workstation Pro访问VMware官方网站找到Workstation Pro的下载页面。根据你的宿主机系统Windows或Linux选择对应版本。下载完成后运行安装程序基本上一直点击“下一步”即可完成安装。安装过程中可能会要求重启电脑按照提示操作。安装完成后打开VMware你应该能看到一个欢迎界面。第一次使用可能需要输入许可证密钥试用版有30天免费期。2.2 创建新的Ubuntu虚拟机新建虚拟机在VMware主界面点击“创建新的虚拟机”。选择“典型”配置即可。选择安装源在下一步中选择“安装程序光盘映像文件(iso)”然后点击“浏览”找到你之前下载的Ubuntu 20.04的ISO文件。设置系统信息用户名和密码为你即将创建的Ubuntu系统设置一个易记的用户名和密码这将是你的系统登录凭证。虚拟机名称可以命名为“Ubuntu-DeOldify”之类的方便识别。位置选择一个剩余空间较大的磁盘分区来存放虚拟机文件建议预留至少50GB空间。指定磁盘容量VMware会建议一个磁盘大小例如20GB。这里非常重要为了后续安装各种开发包和模型文件我强烈建议你将磁盘大小设置为至少50GB并选择“将虚拟磁盘存储为单个文件”。自定义硬件关键步骤在最后一步先不要点击“完成”而是点击“自定义硬件”。内存为虚拟机分配足够的内存。如果你的宿主机有16GB内存建议分配8GB8192 MB给虚拟机。如果宿主机有32GB可以分配12-16GB。处理器将处理器数量设置为2每个处理器的核心数也设置为2即总共4个核心。这能保证虚拟机有足够的计算能力。网络适配器选择“NAT模式”这样虚拟机可以共享宿主机的网络上网同时也能被宿主机访问。USB控制器确保存在即可。最重要的是显卡在“显示器”设置中取消勾选“加速3D图形”。因为我们后续要通过更高级的方式将物理显卡直接分配给虚拟机VMware自带的3D加速功能此时不需要。 设置完成后关闭硬件设置窗口点击“完成”开始创建虚拟机。VMware会自动启动新创建的虚拟机并开始安装Ubuntu系统。安装过程是全图形化的你只需要选择语言、时区并等待安装完成即可。安装结束后重启虚拟机你就拥有了一个全新的Ubuntu桌面环境。3. 第二步为虚拟机安装NVIDIA驱动与CUDA这是整个教程最核心也最容易出问题的一步。我们需要让Ubuntu虚拟机识别并使用宿主机的NVIDIA显卡。这里我们采用“PCI Passthrough”PCI直通技术简单说就是把宿主机的物理显卡“插”到虚拟机上。重要前提请确保你的CPU和主板支持虚拟化技术Intel VT-d 或 AMD-Vi并在主板的BIOS/UEFI设置中将其开启。具体开启方法请根据你的主板型号搜索。3.1 宿主机Windows上的准备工作禁用宿主机对显卡的使用我们需要在宿主机上“释放”这块显卡。右键点击“此电脑” - “管理” - “设备管理器”。找到“显示适配器”展开后你会看到你的NVIDIA显卡。右键点击它选择“禁用设备”。别担心宿主机会切换到集成显卡或基础显示驱动来显示画面。如果系统提示重启请先不要重启。修改VMware虚拟机配置文件完全关闭你的Ubuntu虚拟机不是挂起。找到你存放虚拟机文件的目录就是之前创建虚拟机时指定的位置找到后缀为.vmx的配置文件用记事本等文本编辑器打开它。在文件末尾添加以下几行配置hypervisor.cpuid.v0 FALSE mks.enable3d TRUE pciHole.start 2048 pciHole.end 3072 pciPassthru.use64bitMMIO TRUE pciPassthru.64bitMMIOSizeGB 32保存并关闭文件。3.2 为虚拟机添加直通显卡再次用VMware打开你的Ubuntu虚拟机但先不要启动它。进入虚拟机的“设置” - “添加”。选择硬件类型为“PCI设备”点击“下一步”。在设备列表中你应该能看到你的NVIDIA显卡名称中会包含NVIDIA字样。勾选它点击“完成”。回到设置界面你会在硬件列表中看到新添加的PCI设备。确保它已被勾选启用。3.3 在Ubuntu虚拟机内安装驱动现在启动你的Ubuntu虚拟机。由于显卡被直通进来Ubuntu启动时可能会黑屏或分辨率异常这是正常现象等待系统启动完成通过SSH或者VMware的终端窗口CtrlAltT打开终端进行操作会更方便。更新系统并安装基础工具打开终端执行以下命令。sudo apt update sudo apt upgrade -y sudo apt install build-essential -y禁用Ubuntu自带的开源驱动NVIDIA驱动与开源驱动nouveau冲突必须先禁用它。sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nvidia-nouveau.conf更新初始化ramfs并重启sudo update-initramfs -u sudo reboot安装NVIDIA驱动重启后系统应使用基础显示驱动。我们去NVIDIA官网下载对应你显卡型号的Linux版驱动或者使用Ubuntu的附加驱动工具安装。方法A推荐较简单在“软件和更新” - “附加驱动”选项卡中选择一个专有驱动版本建议选择带server字样的稳定版点击应用更改系统会自动安装。方法B手动从NVIDIA官网下载.run文件在终端中运行安装。验证驱动安装安装完成后再次重启。在终端输入nvidia-smi。如果看到显卡信息表格恭喜你驱动安装成功表格里会显示你的显卡型号、驱动版本和CUDA版本如果驱动包内含CUDA。安装CUDA工具包DeOldify依赖PyTorch而PyTorch需要CUDA。根据nvidia-smi输出建议的CUDA版本去NVIDIA官网下载对应版本的CUDA Toolkit安装包选择runfile [local]类型。按照官方指令安装在安装选项中记得取消安装驱动因为我们已经装好了。4. 第三步配置Python环境与运行DeOldify环境搭建好了现在来安装“主角”。4.1 配置Python虚拟环境我们使用conda来管理Python环境它能很好地处理复杂的依赖关系。安装Miniconda在终端中下载并安装Miniconda一个轻量版的Anaconda。wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh按照提示安装安装完成后关闭并重新打开终端让conda命令生效。创建专属虚拟环境为DeOldify创建一个独立的环境避免污染系统Python。conda create -n deoldify python3.8 -y conda activate deoldify看到命令行提示符前出现(deoldify)说明你已经进入了这个环境。4.2 安装PyTorch与项目依赖安装PyTorch访问PyTorch官网根据你的CUDA版本比如11.3生成对应的安装命令。例如pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113克隆DeOldify项目并安装依赖git clone https://github.com/jantic/DeOldify.git cd DeOldify pip install -r requirements.txt这个过程会安装Jupyter、OpenCV等必要的库。4.3 下载预训练模型并测试运行DeOldify的效果依赖于预训练的模型文件。下载模型项目提供了一个脚本来自动下载模型。在项目根目录下运行bash download_models.sh模型文件会下载到models目录下大约有几百MB。运行测试最简单的方式是启动Jupyter Notebook来运行示例。jupyter notebook终端会输出一个带token的URL如http://localhost:8888/?token...。在Ubuntu自带的浏览器中打开这个链接。 在Jupyter界面中打开image_colorizer.ipynb这个笔记本文件。找到第一个代码单元格Cell里面通常有加载模型和上色的代码。点击菜单栏的Cell-Run All来运行整个笔记本。 稍等片刻你就能在笔记本下方看到示例图片的上色效果了你可以尝试上传自己的黑白照片修改代码中的图片路径体验AI上色的神奇。5. 常见问题与解决方案在搭建过程中你可能会遇到以下问题这里提供一些排查思路虚拟机启动失败或黑屏这通常与PCI直通配置有关。请仔细检查BIOS中VT-d/AMD-Vi是否已开启。宿主机是否已禁用NVIDIA显卡。.vmx配置文件是否添加正确。尝试在VMware虚拟机设置中将“固件”类型从UEFI改为BIOS或反之有时会有奇效。nvidia-smi命令报错或找不到设备说明驱动未正确安装或直通未成功。回到Ubuntu检查lspci | grep NVIDIA命令是否能识别到显卡。如果识别不到直通失败如果识别到但nvidia-smi报错则是驱动问题尝试彻底卸载重装驱动。运行DeOldify时显存不足CUDA out of memoryDeOldify的模型对显存有一定要求。如果直通的显卡显存较小如4GB在处理高分辨率图片时可能报错。尝试在代码中调低render_factor参数如从35调到20这能降低计算负载和显存占用但可能会影响一些细节效果。性能不如预期虚拟机直通显卡存在一定的性能损耗通常约5-15%这是正常的。确保为虚拟机分配了足够的CPU核心和内存。整体走下来虽然步骤看起来不少但每一步都是搭建一个可用的、隔离的AI开发环境的必经之路。用VMware虚拟机的好处是环境干净玩坏了可以快速回滚快照不影响宿主机系统。成功运行DeOldify的那一刻看着黑白照片被赋予色彩还是很有成就感的。这个环境不仅能用于DeOldify它本质上是一个配备了GPU的Ubuntu深度学习开发环境。你可以用它来学习PyTorch、运行其他图像处理模型或者进行一些轻量级的模型训练实验。如果过程中卡在了某一步多利用搜索引擎大部分问题都能在技术社区找到答案。动手试试吧在你的本地机器上开启AI图像处理之旅。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。