天天看點

Ray 學習筆記,建立最新學習環境 (setup tutorial environment)

Ray 是 UC berkley 提出的分布式機器學習。sklearn 是運作在單機上的機器學習,雖然支援多線程,但分布式并不支援。Ray 也支援 tensorflow,pytorch 和其他機器學習包。本部落格是幫助初學者建立學習環境,依據的博文是3個,1個是 英文版的官方建立環境的材料 https://github.com/anyscale/academy,2)是筆者在國内自己建立環境所遇到的問題及其解決方案的部落格,3)安裝和建立jupyter工具,這樣初學者可以少走彎路。

1. 前提條件

筆者的centOS 是8.3版本,其實centOS 8 版本以上的都可以,假設機器是初建立的,就是還沒有裝上各種軟體的。并且初學者是在大陸的,通路外網有困難的。

下載下傳 

  • Anaconda3-2020.11-Linux-x86_64.sh,anaconda 下載下傳的安裝包
  • academy-main.zip,github的代碼zip下載下傳包,

2. 步驟

A。安裝Anaconda 

       安裝anaconda是很直接的,筆者下載下傳的是Anaconda3-2020.11-Linux-x86_64.sh,

sh Anaconda3-2020.11-Linux-x86_64.sh
           

遇到提問,如果是yes/no 的選擇,都鍵入yes,如果是提問是否繼續,鍵入 Enter(Enter鍵),  遇到授權許可,按翻頁鍵就是,總之,不要輸入no。最後,提問時需不需要初始化base開發環境,輸入yes。

安裝完畢,退出exit,然後重新登入。這時,會有以下 提示符出現,

(base) [[email protected] ~]$
           

B。建立 anyscale-academy環境

在使用者目錄下,unzip academy-main.zip 壓縮檔案,

(base) [[email protected] ~]$ unzip academy-main.zip 
           

然後,進入 academy-main目錄,

(base) [[email protected] ~]$ cd academy-main
           

敲入建立 環境名anyscale-academy 的指令:

(base) [[email protected] academy-main]$ conda env create -f environment.yml
           

這個過程比較慢,如果剛建立的虛拟機不能通路網際網路,甚至是國内的網絡,基本上是DNS配置,開始一些Linux環境的配置,加入nameserver,國内是114.114.114.114 dns伺服器

(base) [[email protected] ~]$sudo vi /etc/resolv.conf
nameserver 114.114.114.114
           

初學者可以看看environment.yml 文法,這在先前的部落格已經描述了。安裝環境到environment.yml檔案的pip下的python軟體包很慢,或幹脆就斷了。不要緊的,因為依賴包在pip管轄下的鏡像源在國外,可以用國内的,國内的當數阿裡雲的最快。版本如果沒有,就選擇目前最新的就可以了。不管怎樣,先進入anyscale-academy 環境,

(base) [[email protected] ~]$ conda activate anyscale-academy

(anyscale-academy) [[email protected] academy-main]$
           

 然後,我們先做一個輔助動作,因為按裝ray先前先需要的,

(anyscale-academy) [[email protected] academy-main]$ sudo yum install -y python3-devel
           

現在安裝ray,比如我們要安裝ray[all], 輸入以下指令就可以,注意使用阿裡雲的鏡像源,用-i的辨別符:

#pip install -i https://mirrors.aliyun.com/pypi/simple/ 要下的包名
 
pip install -i https://mirrors.aliyun.com/pypi/simple/ ray[all]
           

我們截選一些environment.yml檔案下的pip段:

name: anyscale-academy
channels:
  - conda-forge
  - pyviz
dependencies:
  - python=3.7
  - pip
...
  - nodejs
  - pip:
    - ray[all] >= 1.2
    - tensorboard >= 2.3
    - tensorflow >= 2.3
    - atoma
    - box2d-py
           

讀者隻需一個一個用阿裡雲的鏡像安裝pip下的python包。

安裝完畢,整個anyscale-academy的環境就全部安裝成功了。

C。定制化的補充指令

在 academy-main目錄下,敲入

(anyscale-academy) [[email protected] academy-main]$ sh tools/fix-jupyter.sh
           

D。潛在的需要的指令:

現在您可以打開jupyter工具了

(anyscale-academy) [[email protected] academy-main]$ jupyter lab
           

但你會可能會遇到問題,如果沒有,恭喜,您就可以使用學習環境了,但也可能有問題。比如:

/usr/lib64/xxx/tornado/netutil.py", line 196, in bind_sockets sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address
           

如果您遇到麻煩,激活IPv6,在安裝ray環境經常遇到的問題部落格裡已經提及,

# 激活IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
           

同時,關閉firewalld,

systemctl status firewalld
# 防火牆工作狀态: active (running) since Fri 2021-03-19 10:17:27 CST; 4 days ago  
# 拆卸防火牆: inactive (dead) since Tue 2021-03-23 10:58:10 CST; 3s ago
 
systemctl stop fiewalld
           

如果還是不能按照 jupyter lab的輸出,在windows通路jupyter,看看下面的步驟:

建立在/etc/hosts 檔案裡加入一條記錄:

...
192.168.1.231 localhost
           

在chrome浏覽器,輸入jupyter lab輸出的位址,而不是下面截圖的位址,

Ray 學習筆記,建立最新學習環境 (setup tutorial environment)

現在基本上,讀者建立了學習環境,後續,我們在介紹怎樣使用學習材料。

E。其他

本文寫于 2021年4月15日

繼續閱讀