anaconda中怎么sh_【好工具】 深度學習煉丹,你怎么能少了這款工具!JupyterLab 遠程訪問指南...

e5b61ad1989ee450a6c9659668b1f01d.png
歡迎來到【好工具】專欄,本次我們給介紹一款可以進行遠程深度學習煉丹的工具 JupyterLab 及其配置流程,幫助讀者在本地進行調試,Max 開發效率。
作者 & 編輯 | Leong

導言

不知道讀者們有沒有發現,如果你用 Anaconda 中的 Notebook 的話,有時想快速調試幾行程序,這時打開 Notebook 每次都得好一會,而且會占用了不少的本地資源,這時要是有一個遠程的 Notebook,想用的時候隨時打開,而且又不用考慮占用本地的計算資源,那該有多好。說干就干!開始我們的配置之旅吧。

工具:一臺服務器(帶 GPU 的更好,還可以進行遠程訓練)、Xshell 軟件

PS:筆者之前購買了一臺騰訊云的服務器,所以就用它來進行演示。

文后提供相關工具的下載!

安裝 Anaconda

(1) 下載 Anaconda 安裝包

訪問 https://www.anaconda.com/distribution/#linux

選擇 Linux 3.7 版本的軟件包,復制鏈接地址,使用 wget 命令進行下載。(筆者服務器的系統是 Ubuntu)

1668a0ad02938897ef236435a947b4df.png
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh

這樣就下載了一個 Anaconda3-2020.02-Linux-x86_64.sh 文件

(2) SHA256 驗證

SHA256 驗證,主要是來驗證所下載的軟件包是否完整,防止文件內容被篡改,驗證的方法是運行下面命令,會出現一串字符。

sha256sum  Anaconda3-2020.02-Linux-x86_64.sh

5e269721457a357a56bf4029df9c58ce.png

在 https://docs.anaconda.com/anaconda/install/hashes/ 找到對應的版本,點擊進去就會看見 sha256 碼,一般是和你終端輸出的字符串是一致的就說明下載的軟件包沒有問題。

e0e4f278c253394790c322a053080b4a.png

(3) 安裝

運行命令安裝

 bash Anaconda3-2020.02-Linux-x86_64.sh

37b31e10c724e06a16cf2e45c4d7ad5f.png

一直回車到底,到最后輸入一個 yes 確認同意協議

5a9464d38099a73cd0f8352a28a2a1aa.png

安裝位置確認 ,回車默認好啦

41ca264a0da902fd398739ef416bfb4a.png

開始解壓安裝

17212b8e0d236fe10c3f51a1ed739043.png

出現 “Do you wish the installer to initialize Anaconda3 by running conda init?”,輸入 yes 回車

489fbf1c605287d951aaf5cdf3b2de1d.png

安裝成功

7de971e2fe582b32e92f4318b42ff343.png

運行 source ~/.bashrc 生效

072c9d307970e9db3ba648e05bcf4387.png

安裝 JupyterLab

JupyterLab 是 Jupyter Notebook 的下一代產品,集成了更多功能。如果你租過別人的遠程服務器的話,那么你會發現,現在很多都是 JupyterLab 居多。所以,我們也使用 JupyterLab 來作為我們的開發界面。

# conda 安裝 
conda install -c conda-forge jupyterlab   
# 或者 pip 安裝 
pip install jupyterlab

0b17320c967675fca62dc982dcba39b6.png

等待安裝即可。。

配置遠程訪問

既然要進行遠程訪問開發,那么就需要進行配置。

(1) 生成驗證字符

終端運行 ipython 并運行以下命令,設置密碼即可(輸入密碼時是看不見的),然后會生成一串字符,待會需要用到。

In [1]: from notebook.auth import passwd    In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:2af47044eb4d:f7c917997d5a91bdeeb4a4a1cab7266b844c94bb'

d7e18bcbc55f67cf3475a9c0997ce778.png

(2) 生成配置文件

 jupyter lab --generate-config

5a50528b4cb90c343803bc68615b04ba.png

(3) 修改配置

修改配置文件的幾處地方(修改的時候記得將前面的 # 刪除),筆者是下載到本地后修改后再上傳到服務器的

將 ip 設置為 *,意味允許任何 IP 訪問

871d544d59c1a8e1dc46139f15052d32.png

這里的密碼就是上邊我們生成的那一串

8c974dec28ab97315a64cdb4dbf484ff.png

服務器上并沒有瀏覽器可以供 Jupyter 打開,所以設置成 False

197deb6bd3cbb639004ca086d009483e.png

監聽端口設置為 8888 或其他自己喜歡的端口

d34f32683aef9a7701423a4609e81641.png

允許遠程訪問

818c95a95b55affea588157facd8ed63.png

我們把工作空間設置在 /home/ubuntu/code 下面,所以進入到該路徑下運行 jupyter lab --allow-root 即可使用

b689640923a8dfca41153cae1db233d5.png

為了讓程序在后臺運行,我們可以使用 tmux 工具(可以后臺運行的工具)

# 安裝 tmux 工具
apt install tmux 
# 啟動一個窗口,關閉后程序仍然可以在后臺運行
tmux -S jupyterlab  # 最后面那個參數是窗口名,可以隨意
# 運行我們所要的程序
jupyter lab --allow-root 

關閉終端窗口,完成!!

在瀏覽器中輸入 ip:8888/lab(換成你服務器的 ip 和端口)輸入密碼即可看到以下的窗口。

1d4b5747c28aaabbd943fbafc687053d.png

遠程可視化

大家在訓練深度學習模型的時候,往往需要對指標進行可視化,其中 Tensorboard 就是一款不錯的工具,下面就給大家演示如何在本地顯示遠程服務器的可視化結果。

首先在 Notebook 運行一個演示程序

c96402903d37fb597afe4139d1c49aa4.png

在 Xshell 進行以下設置

8136a3697d48c3d759adbf7b66d34e11.png

然后運行 tensorboard --logdir runs/

03beb3082a6e60d9068fdd82e03ff0b9.png

最后在本地的瀏覽器輸入 http://localhost:6006/ 即可看到可視化效果了

3b85f8e5f8eb5a023aca68becae4eb00.png

ec4c3c9205fca3a816346fd9bcb3c221.png

后臺回復 Notebook 可以獲取相關工具

掃碼加入有三言選知識星球,共享好資源

67f314adaf2433c60f5c54040eb67fa6.png

轉載文章請后臺聯系

侵權必究

  • 【好工具】用鼠標打開文件夾太慢?來試試這款文件管理器!
  • 【好工具】嫌棄 Linux 普通桌面效率低?那就來試試 dwm
  • 【好工具】復制粘貼,其實你一直用錯了
  • 【好工具】網頁剪藏 + 免費云端筆記 + 一鍵變博客 | 我這樣使用『語雀』
  • 【好工具】強烈安利的文獻管理軟件 Mendeley

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 類和對象 屬性和行為 成員變量和局部變量

概念 使用 案例 public class PersonText {public static void main(String[] args) {Person person new Person();person.name "dq";person.age 11;person.eat("番茄炒蛋");} }class Person {/*** 姓名*/String name;/*** 年齡*/Integer age;/*** 方…

STL源碼剖析 數值算法 heap算法

算法 adjacent_findcountcount_iffindfind_iffind_endfor_eachgenerategenerate_nincludesmax_elementmergemin_elementpartitionremoveremoveremove_copyremove_ifremove_copy_ifreplacereplace_copyreplace_ifreplace_copy_ifreversereverse_copyrotaterotate_copysearchsea…

java 學生對象數組

題目 代碼 package lesson.l10_oop;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/1 9:57* function*/ public class Student {int number;int state;int score;public static final int NUM 20;public static void main(String[] args) { // 對…

STL源碼剖析 lower_bound | upper_bound | binary_search

lower_bound 二分查找的一種版本,試圖在已經排序的區間內查找元素value,如果區間內存在和value數值相等的元素,便返回一個迭代器,指向其中的第一個元素。如果沒有數值相等的元素,會返回假設這個元素存在的前提下應該出…

java能調用python嗎_如何使用運行時在Java中調用python程序 - java

我想用來自Java的參數調用python程序。但是我的輸出是空白。代碼在這里。 Python代碼在這里: import sys print(sys.argv[1]) Java代碼在這里: public class PrintNumber{ public static void main(String[] args){ Process proc; try { proc Runtime.g…

java 匿名對象

概念 代碼 package lesson.l10_oop;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/1 13:39* function 匿名對象*/ public class Anonymous {public static void main(String[] args) { // 用法1new Teacher().say("dq");new Teacher()…

STL源碼剖析 第七章 仿函數(函數對象)

函數對象&#xff1a;具有函數性質的對象使得用戶像使用函數一樣使用它一般函數提供兩個版本&#xff0c;第一個版本使用operator < ;第二版本需要用戶 指定某種操作第二版本就是設計一個函數&#xff0c;將函數指針作為算法的一個參數&#xff1b;或者將函數操作設計成為一…

開源合同管理系統_「物聯網架構」最適合物聯網的開源數據庫

物聯網產生大量的數據&#xff0c;包括流數據、時間序列數據、RFID數據、傳感數據等。要有效地管理這些數據&#xff0c;就需要使用數據庫。物聯網數據的本質需要一種不同類型的數據庫。以下是一些數據庫&#xff0c;當與物聯網一起使用時&#xff0c;會給出非常好的結果。物聯…

java 方法重載

概念 代碼 package lesson.l10_oop;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/1 14:31* function 方法重載*/ public class Load {public static void main(String[] args) {Load load new Load();load.mOL(4);load.mOL(4, 5);load.mOL("ff&qu…

STL源碼剖析 第八章 配接器

設計模式&#xff1a;將一個類的接口轉化為另外一個類的接口 配接器的概觀和分類 改變仿函數接口 函數配接器 &#xff1b;queue和stack 通過修飾deque函數接口來實現改變容器接口 容器配接器 &#xff1b; insert、reverse、iostream 等iterators他們的接口可以由ite…

python中random庫_python標準庫之random模塊

Python中的random模塊用于生成隨機數。 下面具體介紹random模塊的功能&#xff1a; 1.random.random() #用于生成一個0到1的 隨機浮點數&#xff1a;0< n < 1.0 1 import random 2 a random.random() 3 print (a)2.random.uniform(a,b) #用于生成一個指定范圍內的隨機符…

java 可變個數形參

概念 案例 package lesson.l10_oop;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/1 14:53* function 可變個數形參*/ public class ChangeableFormalParameter {public static void main(String[] args) {ChangeableFormalParameter parameter new Ch…

C++標準庫 第七章 STL迭代器

迭代器 能力&#xff1a;行進和存取的能力Input迭代器 一次一個向前讀取元素&#xff0c;按此順序一個一個返回元素例子&#xff1a;從標準輸入裝置(鍵盤) 讀取數據&#xff0c;同一個數據不會被讀取兩次&#xff0c;流水一樣&#xff0c;指向的是邏輯位置使用前置式遞增運算…

nacos集群的ap cp切換_阿里Nacos-配置-多環境

多環境的配置隔離是配置中心最基礎的一個功能之一。不同的環境配置的值不一樣&#xff0c;比如數據庫的信息&#xff0c;業務的配置等。Spring Boot 多環境配置首先我們來回顧下在Spring Boot中用配置文件的方式怎么進行環境的隔離。默認我們都會創建一個application.propertie…

java 值傳遞機制

說明 案例1 案例2 案例3 案例4 案例5 案例6 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/2 21:24* function 將對象作為參數傳遞給方法*/ public class Circle {double radius;public double findArea() {return Math.PI * Ma…

密碼學專題 非對稱加密算法指令概述 RSA

非對稱加密算法也稱為公開密鑰算法&#xff0c;其解決了對稱加密算法密鑰需要預分配的難題&#xff0c;使得現代密碼學的研究和應用取得了重大發展。非對稱加密算法的基本特點如下: 加密密鑰和解密密鑰不相同;密鑰對中的一個密鑰可以公開(稱為公開密鑰);根據公開密鑰很難推算出…

python元胞自動機模擬交通_結構專欄 | 解析DEFORM軟件中的元胞自動機法

點擊上方藍色字體&#xff0c;關注我們導語金屬材料的性能取決于內部的微觀組織結構&#xff0c;而好的材料性能和價格是產品最大的優勢。隨著現代物理冶金、熱成形技術、熱處理技術和計算機技術的興起與發展&#xff0c;使預測和控制金屬材料熱加工過程中的組織演變成為可能。…

java 遞歸

概念 代碼 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/2 21:42* function 遞歸&#xff1a;求n個數的和、乘積*/ public class Recursion {public static void main(String[] args) {Recursion recursion new Recursion();S…

密碼學專題 非對稱加密算法指令概述 DH算法指令

DH概述 用于密鑰交換的公開算法&#xff0c;廣泛應用于各種安全協議SSL協議同樣支持DH算法DH算法使用之前需要預先共享兩個參數&#xff0c;本原元g和模n&#xff0c;這兩個參數影響到算法的安全性&#xff0c;因此需要預先生成并檢測其安全性生成這些必要參數和管理這些參數的…

java 封裝和隱藏 權限修飾符

概念 問題的引入 封裝性的體現 權限修飾符 案例 package lesson.l11_oop2;/*** Illustration** author DengQing* version 1.0* datetime 2022/7/3 15:28* function*/ public class Person {private int age;public void setAge(int age) { /* if (age<0||age>…