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

开源项目网址: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 SparseTensorprint(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/binsudo ./grbgetkey 密钥

6. 验证环境

回到figret环境

conda activate figret

运行开源项目:

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

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

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

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

相关文章

【SpringCloud】从入门到精通(上)

今天主播我把黑马新版微服务课程MQ高级之前的内容都看完了,虽然在看视频的时候也记了笔记,但是看完之后还是忘得差不多了,所以打算写一篇博客再温习一下内容。 课程坐标:黑马程序员SpringCloud微服务开发与实战 微服务 认识单体架构 单体架…

MySQL中动态生成SQL语句去掉所有字段的空格

在MySQL中动态生成SQL语句去掉所有字段的空格 在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况。其中,去掉字段中的空格是一项常见的操作。当表中的字段数量较少时,我们可以手动编写 UPDATE 语句来处理。但如果表中包…

【Grok 大模型深度解析】第二期:架构探秘与训练哲学

在上一期的内容中,我们对 Grok 大模型从技术溯源的角度,了解了它从 Transformer 架构局限性出发,迈向混合架构创新的历程,同时也梳理了从 Grok - 1 到 Grok - 3 的版本迭代所带来的技术跃迁以及其独特的差异化优势。这一期,我们将深入到 Grok 大模型的架构内部,探究其精妙…

c# 使用NPOI将datatable的数据导出到excel

以下是使用 NPOI 库 将 DataTable 数据导出到 Excel 的详细步骤和代码示例(支持 .xls 和 .xlsx 格式): 步骤 1:安装 NPOI NuGet 包 Install-Package NPOI Install-Package NPOI.OOXML # 若需导出 .xlsx 格式 步骤 2:完整代码实现 using NPOI.SS.UserModel; using NPOI.…

基于SpringBoot的求职招聘网站系统(源码+数据库)

473基于SpringBoot的求职招聘网站系统,本系统共分为2个角色:系统管理员、用户,主要功能如下 【前台功能】 用户角色功能: 1. 注册和登录:注册账户并登录系统,以便访问更多功能。 2. 个人信息管理&#x…

CSS 过渡与变形:让交互更丝滑

在网页设计中,动效能让用户交互更自然、流畅,提升使用体验。本文将通过 CSS 的 transition(过渡)和 transform(变形)属性,带你入门基础动效设计,结合案例演示如何实现颜色渐变、元素…

rqlite:一个基于SQLite构建的分布式数据库

今天给大家介绍一个基于 SQLite 构建的轻量级分布式关系型数据库:rqlite。 rqlite 基于 Raft 协议,结合了 SQLite 的简洁性以及高可用分布式系统的稳健性,对开发者友好,操作极其简便,其核心设计理念是以最低的复杂度实…

mujoco graspnet 仿真项目的复现记录

开源项目:https://gitee.com/chaomingsanhua/manipulator_grasp 复现使用的配置:linux系统ubuntu20.04 项目配置记录: git clone 对应的code后: 需要在graspnet-baseline文件夹中继续拉取文件,指令记录:…

【js面试题】new操作做了什么?

这些年也面试了一些外包同事,不知道其他面试官的想法,但就我而言,我更喜欢听到的是口述代码的方式: 比如下述代码 function Animal(age) {this.age age; // 设置新对象的属性 }const cat new Animal("8");最有效的回…

freecad内部python来源 + pip install 装包

cmake来源: 只能find默认地址,我试过用虚拟的python地址提示缺python3config.cmake python解释器位置: python控制台位置: pip install 装包: module_to_install "your pakage" import os import FreeCAD …

树和图论【详细整理,简单易懂!】(C++实现 蓝桥杯速查)

树和图论 树的遍历模版 #include <iostream> #include <cstring> #include <vector> #include <queue> // 添加queue头文件 using namespace std;const int MAXN 100; // 假设一个足够大的数组大小 int ls[MAXN], rs[MAXN]; // 定义左右子树数…

展讯android15源码编译之apk单编

首先找到你要单编的apk生成的路径&#xff1a; sys\out_system\target\product\ussi_arm64\system_ext\app\HelloDemo\HelloDemo.apk接着打开下面这个文件&#xff1a; sys\out_system\ussi_arm64_full-userdebug-gms.system.build.log在里面找关键字"Running command&q…

如何关闭MacOS中鼠标滚轮滚动加速

一、背景 想要关闭滚轮的 “滚动加速”&#xff0c;即希望滚动了多少就对应滚动页面固定行数&#xff0c;现在macOS是加速滚动的&#xff0c;即滚动相同的角度会根据你滚动滚轮的速度不同最终页面滚动的幅度不同。这点很烦&#xff0c;常导致很难定位。 macOS本身的设置是没有…

河北工程大学e2e平台,python

题目&#xff0c;选择题包100分&#xff01; 题目&#xff0c;选择题包100分&#xff01; 题目&#xff0c;选择题包100分&#xff01; 联系&#x1f6f0;&#xff1a;18039589633

【蓝桥杯】贪心算法

1. 区间调度 1.1. 题目 给定个区间,每个区间由开始时间start和结束时间end表示。请选择最多的互不重叠的区间,返回可以选择的区间的最大数量。 输入格式: 第一行包含一个整数n,表示区间的数量 接下来n行,每行包含两个整数,分别表示区间的开始时间和结束时间 输出格式:…

一维差分数组

2.一维差分 - 蓝桥云课 问题描述 给定一个长度为 n 的序列 a。 再给定 m 组操作&#xff0c;每次操作给定 3 个正整数 l, r, d&#xff0c;表示对 a_{l} 到 a_{r} 中的所有数增加 d。 最终输出操作结束后的序列 a。 ​​Update​​: 由于评测机过快&#xff0c;n, m 于 20…

二分答案----

二分答案 - 题目详情 - HydroOJ 问题描述 给定一个由n个数构成的序列a&#xff0c;你可以进行k次操作&#xff0c;每次操作可以选择一个数字&#xff0c;将其1&#xff0c;问k次操作以后&#xff0c;希望序列里面的最小值最大。问这个值是多少。 输入格式 第一行输入两个正…

旋转位置编码

旋转位置编码&#xff08;Rotary Position Embedding&#xff0c;RoPE&#xff09;: 一种能够将相对位置信息依赖集成到 self-attention 中并提升 transformer 架构性能的位置编码方式。 和相对位置编码相比&#xff0c;RoPE 具有更好的外推性&#xff0c;目前是大模型相对位…

.NET-EFCore基础知识

.NET EF Core&#xff08;Entity Framework Core&#xff09;是微软开发的一款开源的对象关系映射&#xff08;ORM&#xff09;框架&#xff0c;用于在.NET 应用程序中与数据库进行交互。以下是一些.NET EF Core 的基础知识&#xff1a; 1. 什么是 EF Core EF Core 是.NET 平…

利用 RNN 预测股票价格:从数据处理到可视化实战

在金融领域&#xff0c;预测股票价格走势一直是众多投资者和研究者关注的焦点。今天&#xff0c;我们将利用深度学习中的循环神经网络&#xff08;RNN&#xff09;来构建一个简单的股票价格预测模型&#xff0c;并详细介绍从数据加载、预处理、模型搭建、训练到最终结果可视化的…