首页 > 编程语言 >Python · Jax | 在 python 3.8 上安装 jax,运行 offline RL 的 IQL

Python · Jax | 在 python 3.8 上安装 jax,运行 offline RL 的 IQL

时间:2025-01-23 11:53:18浏览次数:1  
标签:git Jax jax 0.1 IQL conda cuda 安装


致谢师兄的 jax 环境,完全按照师兄的 conda_env.yml 配置的

(如何导出其他环境的 conda_env.yml:Conda | 如何(在新服务器上)复制一份旧服务器的 conda 环境,Linux 服务器

目录


首先,新建一个 conda 环境:

conda create -n jax_env python==3.8
conda activate jax_env

(如何配置 conda:Conda | 如何在 Linux 服务器安装 conda

01 安装各种库

直接 pip 安装:

pip install numpy==1.21.6 torch==1.13.1 wandb==0.15.10 \
transformers==4.30.2 typing-extensions==4.7.1 optax==0.1.4 \
jax==0.3.24 flax==0.6.0 cloudpickle==2.2.1 distrax==0.1.3 \
glfw==2.6.2 gym==0.15.7

02 安装 jax

jax 把自己的库放在了网站上:

要安装 0.3.24 的 jax,可以运行:

pip install "jax[cuda11_cudnn82]==0.3.24" \
-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

需要注意:

  1. jax jaxlib optax flax 等库,它们的版本有对应关系,可按照这篇博客的参考版本安装;
  2. 需要 pip install cloudpickle==2.2.1,好像很容易安装成 1.2.2 版本,最后要检查一下版本;
  3. 编译的时候,因为 ptxas 版本太低报错,可以运行 which ptxas,查看现在在用哪个 ptxas 版本。如果发现在用老 cuda 版本,则去改 path,修改 ~/.bashrc,添加
export PATH="/usr/local/cuda-{版本号}/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-{版本号}/lib64:$LD_LIBRARY_PATH"
# cuda 版本号可以看 /usr/local 目录里有哪些版本,我用的是 11.7

03 安装 dm_control metaworld d4rl

需要先安装 MuJoCo,可参见这篇:Python · MuJoCo | MuJoCo 与 mujoco_py 的版本对应,以及安装 Cython<3

先把 dm_control metaworld d4rl 这三个库拿下来:

git clone git@github.com:Farama-Foundation/Metaworld.git
git clone git@github.com:Farama-Foundation/D4RL.git
git clone git@github.com:denisyarats/dmc2gym.git

然后分别进入它们的路径,执行 pip install -e . 即可。

04 测试

我跑的是 https://github.com/csmile-1006/PreferenceTransformer 这个库,它里面也有 IQL 的 jax 实现,所以这个环境应该是能跑 IQL jax 的)

05 各种库的参考版本

以下是一个参考环境的版本:

name: jax_env
channels:
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - ca-certificates=2023.08.22=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.38=h1181459_1
  - libffi=3.3=he6710b0_2
  - libgcc-ng=9.1.0=hdf63c60_0
  - libstdcxx-ng=9.1.0=hdf63c60_0
  - ncurses=6.3=h7f8727e_2
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.13=h12debd9_0
  - readline=8.1.2=h7f8727e_1
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.38.5=hc218d9a_0
  - tk=8.6.12=h1ccaba5_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.2.5=h7f8727e_1
  - zlib=1.2.12=h7f8727e_2
  - pip:
    - absl-py==1.4.0
    - appdirs==1.4.4
    - beautifulsoup4==4.12.2
    - cffi==1.15.1
    - charset-normalizer==3.2.0
    - chex==0.1.5
    - click==8.1.7
    - cloudpickle==2.2.1
    - colorama==0.4.6
    - commonmark==0.9.1
    - contextlib2==21.6.0
    - cycler==0.11.0
    - cython==3.0.2
    - decorator==5.1.1
    - distrax==0.1.3
    - dm-control==1.0.13
    - dm-env==1.6
    - dm-tree==0.1.8
    - docker-pycreds==0.4.0
    - etils==0.9.0
    - fasteners==0.18
    - filelock==3.12.2
    - flax==0.6.0
    - fonttools==4.38.0
    - fsspec==2023.1.0
    - future==0.18.3
    - gast==0.5.4
    - gdown==4.7.1
    - gitdb==4.0.10
    - gitpython==3.1.36
    - glfw==2.6.2
    - gym==0.15.7
    - gym-notices==0.0.8
    - h5py==3.8.0
    - huggingface-hub==0.16.4
    - idna==3.4
    - imageio==2.31.2
    - imageio-ffmpeg==0.4.9
    - importlib-metadata==6.7.0
    - importlib-resources==5.12.0
    - jax==0.3.24
    - jaxlib==0.3.24+cuda11.cudnn82
    - joblib==1.3.2
    - kiwisolver==1.4.5
    - labmaze==1.0.6
    - lxml==4.9.3
    - matplotlib==3.5.3
    - ml-collections==0.1.1
    - msgpack==1.0.5
    - mujoco==2.3.6
    - mujoco-py==2.0.2.13
    - numpy==1.21.6
    - nvidia-cublas-cu11==11.10.3.66
    - nvidia-cuda-nvrtc-cu11==11.7.99
    - nvidia-cuda-runtime-cu11==11.7.99
    - nvidia-cudnn-cu11==8.5.0.96
    - opt-einsum==3.3.0
    - optax==0.1.4
    - packaging==23.1
    - pathtools==0.1.2
    - pillow==9.5.0
    - protobuf==3.20.1
    - psutil==5.9.5
    - pybullet==3.2.5
    - pycparser==2.21
    - pyglet==1.5.0
    - pygments==2.16.1
    - pyopengl==3.1.7
    - pyparsing==3.1.1
    - pysocks==1.7.1
    - python-dateutil==2.8.2
    - pyyaml==6.0.1
    - regex==2023.8.8
    - requests==2.31.0
    - rich==11.2.0
    - safetensors==0.3.3
    - scikit-learn==1.0.2
    - scipy==1.7.3
    - sentry-sdk==1.31.0
    - setproctitle==1.3.2
    - six==1.16.0
    - smmap==5.0.1
    - soupsieve==2.4.1
    - tensorboardx==2.1
    - tensorflow-probability==0.19.0
    - termcolor==2.3.0
    - threadpoolctl==3.1.0
    - tokenizers==0.13.3
    - toolz==0.12.0
    - torch==1.13.1
    - tqdm==4.66.1
    - transformers==4.30.2
    - typing-extensions==4.7.1
    - ujson==5.7.0
    - urllib3==2.0.4
    - wandb==0.15.10
    - zipp==3.15.0
prefix: /home/user_name/miniconda3/envs/jax



标签:git,Jax,jax,0.1,IQL,conda,cuda,安装
From: https://www.cnblogs.com/moonout/p/18667147

相关文章

  • 你知道什么是PAJAX吗?它和AJAX有什么区别?它的应用场景有哪些?
    首先,需要澄清的是,PAJAX并不是一个广泛认知或标准的技术术语,在前端开发中,更常见的是AJAX。因此,我会主要解释AJAX,并假设PAJAX可能是某种特定上下文或框架中对AJAX的变种或扩展。AJAX(AsynchronousJavaScriptandXML):定义:AJAX是一种网页开发技术,用于创建异步的Web应用。它通过使......
  • ajax的请求状态有哪几种?
    Ajax的请求状态主要有五种,这些状态可以通过XMLHttpRequest对象的readyState属性来获取。以下是这五种状态的详细解释:未初始化(readyState=0):此时XMLHttpRequest对象已经创建,但尚未调用send()方法,即还没有开始发送请求。这是Ajax请求的初始状态。载入(readyState=1):在此状态下,已......
  • 前端发送Ajax请求的技术Axios
    目录1.引入Axios文件2.使用Axios发送请求2.1请求方法的别名请求的URL地址怎么来的?后端实现前后端交互1.引入Axios文件<scriptsrc="https://unpkg.com/axios/dist/axios.min.js"></script>2.使用Axios发送请求2.1请求方法的别名方法描述axios.get(url[,config......
  • 请详细描述AJAX的工作原理
    AJAX,全称为AsynchronousJavaScriptandXML,即异步JavaScript和XML,是一种用于创建交互式网页应用的网页开发技术,可以在无需重新加载整个网页的情况下,能够更新部分网页的技术。下面将详细描述AJAX的工作原理:创建XMLHttpRequest对象:AJAX的核心是XMLHttpRequest对象,这是一个具有......
  • 【AJAX详解】
    AJAX详解AJAX(AsynchronousJavaScriptandXML)是一种创建交互式网页应用的网页开发技术。它允许在不重新加载整个页面的情况下,通过后台与服务器交换数据并更新部分网页内容。这提供了更流畅的用户体验,因为用户不需要等待整个页面刷新来获取新的信息。AJAX的核心概念异步......
  • 请解释下XHR,ajax,axios,fetch,vue-resource的相同和不同有哪些?
    在前端开发中,XHR(XMLHttpRequest)、Ajax(AsynchronousJavaScriptandXML)、Axios、Fetch和Vue-resource都是用于处理HTTP请求的工具或技术。它们各有特点和用途,下面是对它们的相同点和不同点的解释:相同点:发送HTTP请求:这些技术都能够发送HTTP请求,与服务器进行通信。异步处理......
  • Ajax入门以及Axios的详细使用(含Promise)
    1.概述1.1是什么Ajax=AsynchronousJavaScriptandXML(异步的JavaScript和XML)Ajax不是新的编程语言,而是一种用于创建快速动态网页的技术Ajax最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,使网页实现异步更新传统的网页(......
  • 49、Python入门 Python与AJAX:构建高效Web交互体验
             在现代Web开发中,Python作为后端语言以其简洁高效和丰富的库支持而广受欢迎,而AJAX(AsynchronousJavaScriptandXML)技术则为前端与后端的交互带来了革命性的变化。二者的结合能够构建出高效、流畅且具有卓越用户体验的Web应用。 一、AJAX技术概述AJAX不是......
  • MathJax配置
    这个真的难绷,官方文档看不懂,网上找的例子看似能行但实机起来各种奇怪的错误。目前mathjax是3x,但我尝试下来是行不通的。到现在,我有一个成功的案例,是mathjax@2的。分享如下:index.html<body><divid="app"></div><scripttype="module"src="/src/main.ts"></script>......
  • 前端工程化Ajax
    1Ajax1.1Ajax介绍1.1.1Ajax概述我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序,所以必须涉及到2个程序的交互,所以这就需要用到我们接下来学习的Ajax技术。Ajax......