์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ฌด์กฐ์ฝ
- Robot
- RemoteDesktop
- WSL
- ubuntu
- pyTorch
- OpenAI
- python
- MuJoCo2.1.5
- ์ฐ๋ถํฌ
- Ros
- wsl2
- Robotics
- Melodic
- bindings
- simulation
- ๊ฐํํ์ต
- GYM
- MuJoCo
- Baselines
- Anaconda
- Physics
- Reinforcement Learning
- ์ฃผํผํฐ๋ฉ
- TensorFlow
- python3
- jupyter
- systemctl
- mujoco-py
- JupyterLab
- Today
- Total
Creative-Chan
Jupyter Notebook (JupyterLab) ์๊ฒฉ์๋ฒ ์ค์ ํ๊ธฐ ๋ณธ๋ฌธ
Jupyter Notebook (JupyterLab) ์๊ฒฉ์๋ฒ ์ค์ ํ๊ธฐ
Creative.Chan 2022. 3. 24. 18:03๋ชฉ์ฐจ
๐ก Anaconda ํ๊ฒฝ์์ Jupyter Lab ์ค์น ๋ฐ Ubuntu 18.04 ์๊ฒฉ ์๋ฒ ๊ตฌ์ฑ
1. Jupyter๋?
“Project Jupyter”๋ IPython (Interactive Python) ํ๋ก์ ํธ์์ ํ์ํ ๋น์๋ฆฌ ์คํ์์ค ํ๋ก์ ํธ์ ๋๋ค.
Data Science, Machine Learning ๋ฑ์์ Python์ ์ฝ๊ฒ ํ์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง Web ๊ธฐ๋ฐ์ Interactive Interpreter๋ผ๊ณ ํ ์ ์์ต๋๋ค.
Python ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํํ๋ ๊ฐ๋ฐํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ก ๋จ์๋ก ์ฝ๋ ์คํ์ด ๊ฐ๋ฅํ๊ณ , ์ด๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๊ณ ๋๋ฒ๊น ํ๋ ๋ฑ, ๋ค์ํ ์์ ์ ํ ์ ์์ต๋๋ค.
๋ฟ๋ง ์๋๋ผ, ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ ํ์ฉํ์ฌ ์ฃผ์์ ๋ค๋ ๋ฑ ์ฌ๋ฌ ๊ฐ์ ์ฝ๋์ ์คํ๊ฒฐ๊ณผ์ ๋๋ถ์ด ํ๋์ ๋ฌธ์์ฒ๋ผ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
Jupyter Notebook์ ๊ณ ์ ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง web application์ผ๋ก ๋จ์ํ๊ณ ๋ฌธ์ ์ค์ฌ์ ์ธ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ๋ฉด, JupyterLab์ Jupyter Notebook์ ๊ฐ์ ํ ์ฐจ์ธ๋ ์ธํฐํ์ด์ค๋ก ์น ๊ธฐ๋ฐ์ ์ธํฐ๋ํฐ๋ธ ๊ฐ๋ฐํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ์กด Jupyter Notebook์ ๋ค์ค ํญ ์ง์ ๋ฐ ๋ค์ํ ํ์ฅ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ํฅ์๋ ์์คํ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ณธ ๋ฌธ์์์๋ JupyterLab์ Ubuntu 18.04์ ์ค์นํ๊ณ , ๋ถํ ์ ์๋ ์คํ๋๋ ์๊ฒฉ ์๋ฒ๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ์์ต๋๋ค.
2. JupyterLab ์ค์น ๋ฐ ์ค์
2.1 JupyterLab ์ค์น
Anaconda ํ๊ฒฝ์์ JupyterLab์ ์ค์น๋ ๊ฐ๋จํ ๋ช ๋ น์ด๋ก ์งํ๋ ์ ์์ต๋๋ค.
pip install jupyterlab
์ค์น๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ์คํํ ์ ์์ต๋๋ค.
jupyter lab
# ๋๋
jupyter-lab
2.2 JupyterLab ์ค์
JupyterLab์ ์น ๊ธฐ๋ฐ Application์ด๊ธฐ ๋๋ฌธ์ ์คํํ๊ฒ ๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์๋ฒ๋ง ์คํํ๊ธฐ ์ํด์๋ —-no-browser๋ฅผ ์คํ ๋ช ๋ น์ด ๋ค์ ๋ถ์ด๊ฒ ๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋์ผ๋ก ์ด๋ฆฌ์ง ์์ต๋๋ค.
jupyter-lab --no browser
์ถ๊ฐ์ ์ธ ์ธํ ์์ด ์คํํ ๊ฒฝ์ฐ ์น ๋ธ๋ผ์ฐ์ ์์๋ http://localhost:8888 ๋๋ http://12.0.0.1:8888 ์ฃผ์๋ก ์ ์ํ๋ฉด JupyterLab์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์์ ip ํน์ port ๋ฒํธ๋ฅผ ์ง์ ํ์ฌ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, --ip ์ --port ์ต์ ์ ์ฌ์ฉํ์ฌ ์ค์ ํ ์ ์์ต๋๋ค.
jupyter-lab --ip=<ip address> --port=<port number>
๋งค๋ฒ ์ด๋ฌํ ์ค์ ์ ํ๊ธฐ๋ ๋ฒ๊ฑฐ๋กญ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ์คํ ์ต์ ์ ์ค์ ํ๊ธฐ ์ํด์๋ config ํ์ผ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. config ํ์ผ์ ์์ฑํ๋ ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
jupyter-lab --generate-config
์ ๋ช ๋ น์ด๋ ~/.jupyter/ ์์น์ jupyter_notebook_config.py ํ์ผ์ ์์ฑํฉ๋๋ค.
(๋ค๋ฅธ ์์น์ ์๋ config ํ์ผ์ ์ฌ์ฉํ ์ ์์ง๋ง, ๋ณธ ๊ธ์์๋ ๋ค๋ฃจ์ง ์๋๋ก ํ๊ฒ ์ต๋๋ค.)
์ ๊ฐ ์ฌ์ฉํ ์ต์ ์์ฃผ๋ก ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ค์ ์ฝ๋๋ธ๋ญ์ ์๋ ๋ด์ฉ์ ์์ฑ๋ jupyter_notebook_config.py ํ์ผ์ ์ ์ผ ์์ ๋ถ์ฌ ๋ฃ์ด ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
c = get_config()
c.JupyterApp.config_file_name = 'jupyter_notebook_config.py'
c.NotebookApp.allow_origin = '*'
c.NotebookApp.ip = 'ip_address'
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'password'
c.NotebookApp.allow_origin = ‘*’ ์ต์ ์ JupyterLab ์๋ฒ์ ์ ์์ ํ์ฉํ๋ IP๋ฅผ ํน์ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ๊ธฐ๋ณธ์ ๋ด๋ถ์ ์๋ง ํ์ฉ๋๋ ‘’ ์ด์ง๋ง ์ธ๋ถ ์ ์์ ์ํด์ ๋ชจ๋ ๊ณณ์์ ์ ์์ด ๊ฐ๋ฅํ ‘*’ ๋ก ์ค์ ํ์์ต๋๋ค. ์ด๋ด ๊ฒฝ์ฐ ๋ณด์์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ผ๋ ์ํธ๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ํ์์ ์ด๋ผ ํ ์ ์์ต๋๋ค.
c.NotebookApp.ip = 'ip_address' ์ต์ ์ JupyterLab ์๋ฒ ์ ์์ ์ฌ์ฉํ IP ์ฃผ์์ ๋๋ค. ๋ณธ์ธ ์ปดํจํฐ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
c.NotebookApp.open_browser = False ์ต์ ์ Jupyter ์คํ ์์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋์ผ๋ก ์คํํ ์ง ๊ฒฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ True์ด๋ ๋ธ๋ผ์ฐ์ ์คํ์ ๋ฐฉ์งํ๊ธฐ ์ํด False๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
c.NotebookApp.password = 'password' ์ต์ ์ Jupyter ์๋ฒ์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉํ ์ํธ๋ฅผ ์ค์ ํฉ๋๋ค. ํจ์ค์๋๋ ํ์ด์ฌ ์์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์์ฑํ ์ ์์ต๋๋ค.
>>> from notebook.auth import passwd
>>> passwd()
Enter password: # ์ํธ ์
๋ ฅ
Verify password: # ์ํธ ํ์ธ
'password' # ๋ณตํธํ๋ ์ํธ ํด์ ๊ฐ ์ถ๋ ฅ
์์ฑ๋ ‘password’ ๊ฐ์ ๋ณต์ฌํ์ฌ ์์ ์ต์ ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ ์ ๋ค์๊ณผ ๊ฐ์ ์ํธ ์ ๋ ฅ ์ฐฝ์ ๋ณผ ์ ์๊ฒ ๋๊ณ ์ ๋ ฅํ ์ํธ๋ฅผ ๋ฃ์ผ๋ฉด ์ ์ ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ฌํ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด JupyterLab์ ์คํํ๊ณ ์๋ ํ๋์ Terminal ์ฐฝ์ด ๊ณ์ํด์ ์กด์ฌํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ nohup ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
# nohup์ ๋ฆฌ๋ ์ค์์ ํ๋ก์ธ์ค๋ฅผ ์คํํ ํฐ๋ฏธ๋์ ์ธ์ ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ผ๋ ๋์ํ ์ ์๊ฒ ํ๋ ๋ช ๋ น์ด์ ๋๋ค.
nohup jupyter-lab &
2.3 JupyterLab ์๋น์ค ๋ฑ๋ก (๋ถํ ์ ์๋ ์คํ)
์์ ๋ช ๋ น์ด๋ค์ ์ฌ์ฉํ๋ ๊ฒ์ JupyterLab์ ์ฌ์ฉํ ๋๋ง๋ค ์๋ฒ๋ฅผ ์ด์ด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ต๋๋ค.
์๊ฒฉ์ง์์ ์๋ฒ๊ฐ ์ฌ๋ถํ ๋๊ฑฐ๋ ํ๋ ๊ฒฝ์ฐ์๋ ์๋์ผ๋ก ์คํ๋๋๋ก ์๋น์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๊ณต์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
- ์ด๊ธฐ์๋ conda ํ๊ฒฝ ์์ Jupyter๋ฅผ ์ค์นํ์ฌ ์ฌ์ฉํ์ผ๋ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ถฉ๋์ด ์์ด ๊ธฐ๋ณธ ํ๊ฒฝ์ Jupyter๋ฅผ ์ค์นํ๊ณ ์ปค๋์ ์ถ๊ฐํ์์ผ๋ฉฐ, ํ๊ฒฝ๋ณ์ ๋ฑ์ ๋ฌธ์ ๊ฐ ์์ด ๋ค์ ๋ช ๋ น์ด๋ก ์ฌ์ฉํ์์ต๋๋ค.
๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋ฆฌ๋ ์ค service ํ์ผ์ ์์ฑํฉ๋๋ค.
sudo nano /etc/systemd/system/jupyter.service
๋ค์ ๋ด์ฉ์ ์ ๋ ฅํฉ๋๋ค.
[Unit]
Description=Jupyter Server
[Service]
User=<USERNAME>
ExecStart=/bin/bash -i -c "jupyter-lab --allow-root --config=<CONFIG_PATH>"
WorkingDirectory=<DIRECTORY>
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
์ฌ์ฉ์์ ๋ง๊ฒ ๋ณ๊ฒฝํด์ผํ๋ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- : ์ฌ์ฉ์ ์ด๋ฆ
- <CONFIG_PATH>: ์์์ ์์ฑํ jupyter_notebook_config.py ํ์ผ์ ์์น
- : ํด๋น Jupyter๊ฐ ์ ๊ทผ ํ ์ ์๋ ์์ ๊ฒฝ๋ก
์์ ๋ช ๋ น์ด๋ฅผ ํด์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ค์ ํ User์ ๊ถํ์ผ๋ก WorkingDirectory์์ ExecStart์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค.
- Restart ์กฐ๊ฑด์ผ ๋, RestartSec ๋ง๋ค ์๋น์ค๋ฅผ ์ฌ์คํํ๋ค.
๋ณธ์ธ์ ๊ฒฝ์ฐ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถฉ๋์ด ์์ด ~/.bashrc ์ ์ ๋ ฅ๋ ํ๊ฒฝ๋ณ์๋ฅผ ๋์ผํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์, /bin/bash -i -c "jupyter-lab --allow-root --config=<CONFIG_PATH>" ๋ช ๋ น์ด๋ฅผ ํ์ฉํ์ฌ bash ๊ธฐ๋ฐ์ผ๋ก ์คํํ ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
ํด๋น ํ์ผ์ ์์ฑํ๊ณ ์ ์ฅํ ๋ค, ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ์์ฑํ ์๋น์ค๋ฅผ ์์คํ ์ ๋ฑ๋กํฉ๋๋ค.
sudo systemctl daemon-reload
sudo systemctl enable jupyter.service
sudo systemctl start jupyter.service
๋ฑ๋กํ ์๋น์ค์ ์๋ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
sudo systemctl status jupyter.service
์ ๋ช ๋ น์ด ์คํ์ ๋ค์๊ณผ ๊ฐ์ด active ํ์๊ฐ ๋จ๋ฉด ์ ์์ ์ผ๋ก ์คํ์ค์ธ ๊ฒ์ ๋๋ค.
2.4 JupyterLab Kernel ์ถ๊ฐ
์์ ๊ฐ์ด ์คํํ JupyterLab์๋ ๊ธฐ๋ณธ ์ปค๋๋ง ์์ฑ๋์ด ์์ต๋๋ค.
์์ฑ๋ Conda ํ๊ฒฝ์์ ์์ ํ๊ณ ์ ํ๋ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด Kernel์ ์ถ๊ฐํ์ฌ ์ฌ์ฉํฉ๋๋ค.
1. ipykernel ์ค์น
pip install ipykernel
2. JupyterLab ์์ Kernel ์ค์น
python -m ipykernel install --user --name<๊ฐ์ํ๊ฒฝ ์ด๋ฆ> --display-name<ํ์๋ ์ปค๋ ์ด๋ฆ>
3. Kernel ํ์ธ
jupyter kernelspec list
4. Kernel ์ ๊ฑฐ
jupyter kernelspec uninstall <๊ฐ์ํ๊ฒฝ ์ด๋ฆ>
'Programming > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
wsl์์ systemctl ์ฌ์ฉํ๊ธฐ (0) | 2023.02.05 |
---|---|
Windows Deep Learning Server using WSL2 (0) | 2023.02.04 |
์ฐ๋ถํฌ reboot๊ณผ NVIDIA Driver ์๋ฌ๋ก ์ธํ ์ฌ์ค์น (0) | 2022.04.01 |
Anaconda ๊ฐ์ํ๊ฒฝ์ ํตํ ๋ฅ๋ฌ๋ ํ๊ฒฝ ์ค์ (TensorFlow, PyTorch) (0) | 2022.03.23 |
Ubuntu 18.04์์ Chrome Remote Desktop ์ค์ ํ๊ธฐ (0) | 2022.03.23 |