【深度学习】Ubuntu 服务器配置开源项目FIGRET(PyTorch、torch-scatter、torch-sparse、Gurobi 安装)

news2025/4/12 23:19:02

开源项目网址:https://github.com/FIGRET/figret
该项目在SIGCOMM2024发表,用深度学习方法处理流量工程中的突发问题

1. 创建新的 Conda 环境

使用国内镜像源创建环境​

conda create -n figret python=3.8.0 --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

2. 激活环境

conda activate figret

激活后,终端提示符会显示 (figret),表示已进入该环境。


3. 安装 PyTorch 及相关库

(1) 根据 CUDA 版本安装 PyTorch

首先检查服务器的 CUDA 版本:

nvcc --version  # 查看 CUDA 工具包版本(例如 11.8 或 12.1)
nvidia-smi      # 查看驱动支持的最高 CUDA 版本

根据 CUDA 版本选择 PyTorch 安装命令:

  • CUDA 11.8
    查看CUDA版本
(figret) antl@antl-node11:~$ nvcc --version

显示CUDA11.4,PyTorch 官方对 CUDA 11.4 的支持截至 ​1.12.1​(2022年7月)

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 \
--extra-index-url https://download.pytorch.org/whl/cu113

验证pytorch
在这里插入图片描述

(2) 安装 torch-scattertorch-sparse

命令行安装会出现找不到版本的问题,这里需要访问以下网址手动安装:
https://data.pyg.org/whl/torch-1.12.1%2Bcu113.html

进入whl所在文件夹手动安装

pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl 
pip install torch_sparse-0.6.14-cp38-cp38-linux_x86_64.whl

在这里插入图片描述

验证是否配置成功

import torch
from torch_scatter import scatter_add
from torch_sparse import SparseTensor

print(scatter_add)  # 输出函数地址
print(SparseTensor)  # 输出类地址

在这里插入图片描述


4. 安装其他依赖包

# 进入 FIGRET 项目目录(假设 requirements.txt 在项目根目录)
cd /path/to/figret_project

# 安装依赖包
pip install -r requirements.txt

5. 安装 Gurobi 求解器

(1) 下载并安装 Gurobi

下载地址:https://www.gurobi.com/downloads/gurobi-software/

# 解压到 /opt(需要 sudo 权限)
#注意gurobi11.0.3是下载的版本
sudo tar -xvzf gurobi11.0.3_linux64.tar.gz -C /opt

# 添加环境变量
echo "export GUROBI_HOME=/opt/gurobi1102/linux64" >> ~/.bashrc
echo "export PATH=${PATH}:${GUROBI_HOME}/bin" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib" >> ~/.bashrc
source ~/.bashrc

注意环境变量是在主环境配置的,可以作用于所有环境

(2) 申请学术许可证
  1. 访问 Gurobi 学术许可页面,注册并获取许可证密钥。
    这里如果校园网网址无法被自动解析为校园网,需要发邮件申请
    在这里插入图片描述
    申请流程非常快,笔者这边仅5分钟就收到了回信

  2. 在服务器上运行以下命令激活许可证:

   cd $GUROBI_HOME/bin
   sudo ./grbgetkey 密钥

6. 验证环境

回到figret环境

conda activate figret

运行开源项目:

python3 figret.py --topo_name Facebook_pod_a --epochs 3 --batch_size 32 --alpha 0.03

在这里插入图片描述
运行正常

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅析Centos7安装Oracle12数据库

Linux下的Oracle数据库实在是太难安装了,事贼多,我都怀疑能安装成功是不是运气的成分更高一些。这里虚拟机是VMware Workstation 15.5,操作系统是Centos7,Oracle版本是Oracle Database 12c Enterprise Edition Release 12.1.0.2.0…

代码随想录算法训练营Day27 | Leetcode 56. 合并区间、738.单调递增的数字、968.监控二叉树

代码随想录算法训练营Day27 | Leetcode 56.合并区间、738.单调递增的数字、968.监控二叉树 一、合并区间 相关题目:Leetcode56 文档讲解:Leetcode56 视频讲解:Leetcode56 1. Leetcode56. 合并区间 以数组 intervals 表示若干个区间的集合&am…

ESP32S3 链接到 WiFi

以下是关于如何让 ESP32S3 连接到 WiFi 的完整流程和代码示例: ESP32S3 链接到 WiFi 1. 设置工作模式 ESP32 可以工作在两种模式下: Station (STA) 模式:作为无线终端连接到无线接入点(AP),类似于手机或…

2024年博客之星的省域空间分布展示-以全网Top300为例

目录 前言 一、2024博客之星 1、所有排名数据 2、空间属性管理 二、数据抓取与处理 1、相关业务表的设计 2、数据抓取处理 3、空间查询分析实践 三、数据成果挖掘 1、省域分布解读 2、技术开发活跃 四、总结 前言 2024年博客之星的评选活动已经过去了一个月&#xf…

蓝桥赛前复习2:一维差分二维差分

一维差分 问题描述 给定一个长度为 nn 的序列 aa。 再给定 mm 组操作,每次操作给定 33 个正整数 l,r,dl,r,d,表示对 al∼ral∼r​ 中的所有数增加 dd。 最终输出操作结束后的序列 aa。 Update:由于评测机过快,n,mn,m 于 2024…

算法---子序列[动态规划解决](最长递增子序列)

最长递增子序列 子序列包含子数组&#xff01; 说白了&#xff0c;要用到双层循环&#xff01; 用双层循环中的dp[i]和dp[j]把所有子序列情况考虑到位 class Solution { public:int lengthOfLIS(vector<int>& nums) {vector<int> dp(nums.size(),1);for(int i …

100道C#高频经典面试题带解析答案——全面C#知识点总结

100道C#高频经典面试题带解析答案 以下是100道C#高频经典面试题及其详细解析&#xff0c;涵盖基础语法、面向对象编程、集合、异步编程、LINQ等多个方面&#xff0c;旨在帮助初学者和有经验的开发者全面准备C#相关面试。 &#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSD…

MQTT的构成、使用场景、工作原理介绍

一、MQTT内容简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议【适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境】它在物联网应用中广受欢迎&#xff0c;能够实现传感器、执行器和其它设备之间的…

Vanna + qwq32b 实现 text2SQL

Vanna 是一个开源的 Text-2-SQL 框架&#xff0c;主要用于通过自然语言生成 SQL 查询&#xff0c;它基于 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;技术。Vanna 的核心功能是通过训练一个模型&#xff08;基于数据库的元数据和用户提…

电脑知识 | TCP通俗易懂详解 <一>

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f68d;什么是TCP/TCP协议 三、&#x1f9cd;‍♂为什么TCP可靠 1.&#x1f970;关于可靠 2.&#x1f920;哪里可靠 3.&#x1f393;️图片的三次握手&#xff0c;四次挥手 4.&#x1f4da;️知识点总结 四、&…

精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip

精品推荐-最新大模型MCP核心架构及最佳实践资料合集&#xff0c;共18份。 1、2025年程序员必学技能&#xff1a;大模型MCP核心技术.pdf 2、MCP 架构设计剖析&#xff1a;从 Service Mesh 演进到 Agentic Mesh.pdf 3、MCP 架构设计深度剖析&#xff1a;使用 Spring AI MCP 四步…

Linux 线程:从零构建多线程应用:系统化解析线程API与底层设计逻辑

线程 线程的概述 在之前&#xff0c;我们常把进程定义为 程序执行的实例&#xff0c;实际不然&#xff0c;进程实际上只是维护应用程序的各种资源&#xff0c;并不执行什么。真正执行具体任务的是线程。 那为什么之前直接执行a.out的时候&#xff0c;没有这种感受呢&#xf…

VMware虚拟机Ubuntu磁盘扩容

VMware中操作&#xff1a; 选择要扩容的虚拟机&#xff0c;点击编辑虚拟机设置 打开后点击磁盘——>点击扩展&#xff08;注意&#xff1a;如果想要扩容的话需要删除快照&#xff09; 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…

游戏引擎学习第217天

运行游戏并在 FreeVariableGroup 中遇到我们的断言 其实在美国&#xff0c;某些特定的小糖果&#xff08;例如小糖蛋&#xff09;只在圣诞节和复活节期间出售&#xff0c;导致有些人像我一样在这段时间吃得过多&#xff0c;进而增加体重。虽然这种情况每年都会发生&#xff0c…

Day 8 上篇:深入理解 Linux 驱动模型中的平台驱动与总线驱动

B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 总线驱动模型实战全解析 —— 以 PCA9450 PMIC 为例 敬请关注&#xff0c;记得标为原始粉丝。 在 Linux 内核驱动模型中&#xff0c;设备与驱动的组织方式不是随意堆砌&#xff0c;而是基于清晰的分类…

全新突破 | 更全面 · 更安全 · 更灵活

xFile 高可用存储网关 2.0 重磅推出&#xff0c;新增多空间隔离功能从根源上防止数据冲突&#xff0c;保障各业务数据的安全性与独立性。同时支持 NFS、CIFS、FTP 等多种主流文件协议&#xff0c;无需繁琐的数据拷贝转换&#xff0c;即可与现有系统无缝对接&#xff0c;降低集成…

T-Box车载系统介绍及其应用

定义 T-Box汽车系统&#xff0c;全称为Telematics - BOX&#xff0c;也常简称为车载T - BOX&#xff0c;是汽车智能系统及车联网系统中的核心组成部分&#xff0c;是安装在车辆上的一种高科技远程信息处理器。 工作原理 T-Box的核心功能主要通过MPU和MCU实现。MPU负责应用程序功…

SQLyog使用教程

准备工作 链接本地数据库 准备 1&#xff1a;安装mySQL数据库 2&#xff1a;安装SQLyong 连接本地数据库 打开SQLyong应用&#xff0c;将会出现下面的页面 点击新建&#xff0c;输入链接名 输入密码&#xff0c;点击 连接 按钮 如果出现连接错误&#xff0c;且错误号为2058…

for循环的优化方式、循环的种类、使用及平替方案。

本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。 作者:任聪聪 日期:2025年4月11日 一、循环的种类 1.1 默认有以下类型 原始 for 循环 for(i = 0;i<10;i++){…

使用 Python 扫描 Windows 下的 Wi-Fi 网络实例演示

使用 Python 扫描 Windows 下的 Wi-Fi 网络 代码实现代码解析 1. 导入库2. 解码混合编码3. 扫描 Wi-Fi 网络4. 运行函数 这是我当前电脑的 wifi 连接界面。 这个是运行的效果图&#xff1a; 代码实现 我们使用了 Python 的 subprocess 模块来调用 Windows 的内置命令 netsh…