์ถ์ฒ: https://codegear.tistory.com/66
- ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ docker-compose.yml ์์ฑ
docker-compose up -d
- curl๋ก ๋ณดํธ๋ FTP ์๋ฒ์ ์ก์ธ์คํ๋ ค๋ฉด -u ์ต์ ์ ์ฌ์ฉํ๊ณ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์ง์ ํฉ๋๋ค.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
-
๋ก๊ทธ์ธํ๋ฉด ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๊ฐ ๋์ด๋ฉ๋๋ค.
-
๋ค์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ FTP ์๋ฒ์์ ๋จ์ผ ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
- ํ์ผ์ FTP ์๋ฒ์ ์ ๋ก๋ํ๋ ค๋ฉด ์ ๋ก๋ํ ํ์ผ ์ด๋ฆ ๋ค์ -T๋ฅผ ์ฌ์ฉํฉ๋๋ค.
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
-
์๊ฒฉ ๋ฆฌ์์ค์ ์ก์ธ์คํ๊ฑฐ๋ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๊ธฐ ์ํด ํน์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ HTTP ์์ฒญ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
-
๊ธฐ๋ณธ์ ์ผ๋ก Curl์ด ์๋ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ ๋ ์ฟ ํค๋ ์ ์ก๋๊ฑฐ๋ ์ ์ฅ๋์ง ์์ต๋๋ค.
-
์๋ฒ๋ก ์ฟ ํค๋ฅผ ๋ณด๋ด๋ ค๋ฉด -b ์ค์์น ๋ค์์ ์ฟ ํค ๋๋ ๋ฌธ์์ด์ด ๋ค์ด ์๋ ํ์ผ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
-
์๋ฅผ ๋ค์ด Oracle Java JDK rpm ํ์ผ jdk-10.0.2_192-x64_bin.rpm์ ๋ค์ด๋ก๋ํฉ๋๋ค. ๊ฐ์ ๊ฐ์ง oraclelicense๋ผ๋ ์ฟ ํค๋ฅผ ์ ๋ฌํด์ผ ํฉ๋๋ค.
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm
- ํ๋ก์ ์๋ฒ์ ์ธ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ -U(--proxy-user) ์ต์ ์ ์ฌ์ฉํ๊ณ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์ฝ๋ก (user:password)์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค.
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
reference : https://jjeongil.tistory.com/1313
- ํด๋(๋๋ ํฐ๋ฆฌ)๊ฐ ํจํค์ง๋ก ์ธ์๋๋๋ก ํ๋ ์ญํ ๋ ์๊ณ , ์ด๋ฆ ๊ทธ๋๋ก ํจํค์ง๋ฅผ ์ด๊ธฐํํ๋ ์ญํ ์ ํ๋ค.
git push -u origin master
- set upstram for git pull/status
- ๊ธฐ๋ฅ ํ์ธ ํ๋ ๋ฒ git push -help
- ํ์์์ ํตํ ssh ์ ์ ๋ฐฉ๋ฒ
#default 22๋ฒ ํฌํธ
ssh [email protected]
- ssh [์ ์ํ username]@[์๋ฒ์ฃผ์] -p [sshํฌํธ๋ฒํธ]
SCP๋ SSH ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ผ์ ์ ์กํ๋ ํ๋กํ ์ฝ(SSH ํฌํธ ์ฌ์ฉ) ํ์ผ ์ ์ก๋ง ํ์ฉํ๋ ํ๋กํ ์ฝ
- ๋ก์ปฌ -> ์๊ฒฉ ํ์ผ ์ ์ก
- SCP [์ ์ํ username]@[์๋ฒ์ฃผ์]:[ํ์ผ๊ฒฝ๋ก][์ ์ฅํ ๊ฒฝ๋ก]
# ์๋์ฐ -> ๋ฆฌ๋
์ค
scp C:\Users\user\test.txt [email protected]:/tmp/
# ๋ฆฌ๋
์ค -> ์๋์ฐ
scp [email protected]:/tmp/test.txt C:\Users\user
# ํฌํธ ์ค์
scp -P 10022 [email protected]:/tmp/test.txt C:\Users\user\
# ๋๋ ํฐ๋ฆฌ ๋จ์ ์ ์ก
scp -r [email protected]:/tmp/test C:\Users\user\
# ๋๋ ํฐ๋ฆฌ ๋ด ๋ชจ๋ ํ์ผ ์ ์ก
scp [email protected]:/tmp/* C:\Users\user\
6์ 9์ผ ์ค์ ๋ฐฐ์ด ๋ด์ฉ
- dorker ์์ฑ๊ณผ ์ญ์ ๋ docker ์๋ฒ์ธ SSH์์ ํด์ค๋ค!
-
docker ์๋ฒ์์ ์์ฐ๋ ์ปจํ ์ด๋ ์ง์ฐ๊ธฐ
$ cd newworld #[๋ด๊ฐ ์ง์ฐ๊ณ ์ํ๋ ์ปจํ ์ด๋] $ make rm $ make rmi
-
๋ค์ ๋ด๊ฐ ๋ง๋ค๊ณ ์ถ์ ์ปจํ ์ด๋ ์์ฑํ๊ธฐ(
# cd newworld #[๋ง๋ค๊ณ ์ํ๋ ์ปจํ ์ด๋] ์ค์ ์ Makefile์์ ํด์ฃผ๊ณ ์คํ $ make build $ make run
-
Dockerfile ๋ค์ด๊ฐ์ ์ถ๊ฐํ๊ณ ์ถ์ apt ์ค์นํ๊ธฐ
# install RUN apt-get update RUN apt-get git
-
๋ด๊ฐ ๋ง๋ ๋์ปค ์ปจํ ์ด๋๋ก ์ด๋ํ๊ธฐ
# Attach visual studio ๋๋ฌ์ ์๋ก์ด ์ปจํ ์ด๋์ฐฝ ์ด๊ธฐ
-
๋ด๊ฐ ์์ฑํ ๋ด์ฉ ๊น์ผ๋ก ์ฌ๋ฆฌ๊ธฐ
$ git remote add origin https://github.com/szjung-test/mainpractice.git $ git pull origin master $ git add hello.html $ git commit -m "docker first commit" $ git push -u origin master
-
torch์์ ๋๋ค์๋๊ฐ ๊ณ ์ ํ๋๋ฒ
import torch torch.random.manual_seed(777)
-
์ฃผ์ ๊ฟํ
ctrl + /
6์ 10์ผ ๋ฐฐ์ด ๊ฟํ
-
shift + Delete = ์๊ตฌ ์ญ์
-
Dockerfile ์ opencv ์ค๋ฅํด๊ฒฐ apt
RUN apt-get update && apt-get install -y sudo RUN apt-get install -y libgl1-mesa-glx
-
๊ธฐ์กด ๋์ปค ์ปจํ ์ด๋ ์ญ์ ํ ๋ค์ ์์ฑ
make rm make rmi make build make run
-
newworld ์ปจํ ์ด๋์์ ์ ๋ฐ์ดํธ
pip install --upgrade pip pip install torch torchvision sklearn numpy seaborn opencv-python
์ปจํ ์ด๋์ ์ค์ ๋ค์ ์๋ฃ!
์ค๋ ์ค์นํ ๊ฒ
- VirtualBox์ Ubuntu server ๋ค์ด๋ฐ๊ณ Docker ์ค์น
sudo apt-get update && upgrade
sudo apt-get install ca-certificates \ curl \ gnupg \ lsb-release
sudo apt install docker.io
sudo apt-get update
sudo docker version
sudo apt install net-tools
ifconfig
6์ 13์ผ ๊ฟํ
- git pull origin master
- origin์ด ์๊ฒฉ์ ์ฅ์ ์ด๋ฆ์ด ๋๊ณ master ๋ธ๋์น๋ก ๊ฐ์ ธ์จ๋ค๋ ๋ป
- ssh-keygen
-
ssh ํค๊ฐ ์ ์ฅ๋๋ ๋๋ ํฐ๋ฆฌ๋ .ssh ๋๋ ํฐ๋ฆฌ
- id-rsa = ํ๋ผ์ด๋นํค
- id-rsa.pub = ํผ๋ธ๋ฆญํค
-
N/.ssh. ๋๋ ํฐ๋ฆฌ๋ ํ ๋๋ ํฐ๋ฆฌ ํ์์ ๋ง๋ค์ด์ง
-
git pull ์๊ฒฉ ๋ธ๋์น ์ ๋ณด๊ฐ์ ธ์ค๊ธฐ
6์ 14์ผ ๊ฟํ
git branch ํ์ฉ ๊ด๋ฆฌ๋ฒ
[HEAD] ํด๋น ๋ธ๋์น์ ๋ง์ง๋ง ์ปค๋ฐ์ด ํด๋น ๋ถ๋ถ
์์)
Toy Story@DESKTOP-O3V1LK3 MINGW64 ~/Documents/git-test (feat/b)
$ git log
commit 6a13f83171fa4a0af52170fb256cba034bb2c4f2 (HEAD -> main, origin/main, origin/HEAD)
Merge: 1b7fde2 36d7d66
Author: szjung-test <[email protected]>
Date: Tue Jun 14 15:09:11 2022 +0900
Merge pull request #1 from szjung-test/feature/comment
๋๊ธ ๊ธฐ๋ฅ ์ถ๊ฐ
checkout ์ ๋ธ๋์น๋ฅผ ์ด๋ํ๋ ๋ช ๋ น์ด
checkout -b ๋ค๋ฅธ ๋ธ๋์น HEAD ์ถ๊ฐํ๊ธฐ
์์)
git checkout -b "feature-layout"
HEAD -> feature-layout, origin/main, origin/HEAD, main
$ git checkout -b "feature-layout"
Switched to a new branch 'feature-layout'
Toy Story@DESKTOP-O3V1LK3 MINGW64 ~/Documents/git-test (feature-layout)
$ git log
commit 6a13f83171fa4a0af52170fb256cba034bb2c4f2 (HEAD -> feature-layout, origin/main, origin/HEAD, main)
Merge: 1b7fde2 36d7d66
Author: szjung-test <[email protected]>
Date: Tue Jun 14 15:09:11 2022 +0900
Merge pull request #1 from szjung-test/feature/comment
๋๊ธ ๊ธฐ๋ฅ ์ถ๊ฐ
Merge ๋จธ์ง
- ๋ธ๋์น์ ๋ธ๋์น๋ฅผ ํฉ์น๋ ๋ช ๋ น์ด
6์ 15์ผ ๊ฟํ
- [๋ฏธ๋ฆฌ์บ๋ฒ์ค URL] (https://www.miricanvas.com/).
- ์ฅ์ : ๋ฏธ๋ฆฌ์บ๋ฒ์ค๋ฅผ ์ด์ฉํ๋ฉด ppt๋ฅผ ์ด์๊ฒ ๋ง๋ค์ ์๋ค.
- ๋จ์ : ์์ด์ฝ ์ปค์๊ฐ ๋ค ์ปค์ ์ธ์ธํ๊ฒ ์กฐ์ ์ด ์ด๋ ต๋ค.
6์ 16์ผ ๊ฟํ
- git brach๋ฅผ ์ด์ฉํ๋ฉด ๋ฒ์ ๊ด๋ฆฌ์ ์ฉ์ดํ๋ค.
- Adam() ์ SGD์ ๋ณํ ํจ์ ์ด๋ค.
- nn.MSELoss() : ๋ ๊ฐ์ ๊ฐ์ ํฌ๊ธฐ ํ๋ ฌ์ ๋ฐ์ ๊ฐ ์๋ฆฌ์ ์ฐจ์ด์ ์ ๊ณฑํด์ ํ๊ท ๊ฐ์ฒด ์์ฑ
- criterion : (decoded - y)^2
6์ 17์ผ ๊ฟํ
-
Classification : ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ด๋ฏธ์ง ์์ ์ด๋ค object๊ฐ ์๋ ์ง์ ๋ฐ๋ผ class(label)์ ๊ตฌ๋ถํ๋ ํ์
-
Localization : ์ด๋ฏธ์ง ์์ object๊ฐ ์ด๋ ์์น์ ์๋์ง ์ ๋ณด๋ฅผ ์ถ๋ ฅ
-
Semantic segmentation : classification + Localization
-
Instance segmentation : ๊ฐ์ class์ฌ๋ ์๋ก ๋ค๋ฅธ instance๋ค์ ๊ตฌ๋ถํ๋ค. ์ฆ object detection์ฒ๋ผ ์ด๋ค์ง๋ค.
- object segmentaion : ์๋ก ๋ค๋ฅธ object๊ฐ ์์ฌ ์์ด๋ ์ฐพ์ ์ ์์, ์ฌ์ง์ ๋ณด์ด๋ ํด๋น object ๋ค์ ๊ฐ๊ฐ ๊ณจ๋ผ๋
6์ 21์ผ ๊ฟํ
- ๋ธ๋ผ์ฐ์ ์์ ๋ฐฉ๊ธ ๋ซ์ ํ์ด์ง ๋ณต๊ตฌ ๋ฐฉ๋ฒ : ctrl + shift + t
- ์ฐํด๋ฆญ ๋ถ๊ฐ๋ฅํ ๋ ์ฌ์ฉ๋ฐฉ๋ฒ : f12 , f1, setting :disable javascript ์ฒดํฌ
6์ 23์ผ ๊ฟํ
-
๋ฅ๋ฌ๋ ๋ถ์ผ๋ณ State-of-the-art(SOTA) ํ์ธ ๊ฐ๋ฅ ์ฌ์ดํธ [site]
-
Pose Estimation ๋ถ์ผ๊ฐ ๊ต์ฅํ ์์ฆ ๊ฐ๊ด ๋ฐ๋ ๋ถ์ผ
-
ํฌ๊ฒ Top-down ๋ฐฉ์๊ณผ Botton-up ๋ฐฉ์์ผ๋ก ํฌ๊ฒ ๋๋จ
6์ 27์ผ ๊ฟํ
- RNN์ ์๊ณ์ด ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ๋ฐ์ ์ ์ฒด ๋ด์ฉ์ ํ์ตํ๋ค.
- ์์ฐจ์ ๋ฐ์ดํฐ์ ํ๋ฆ์ ๋ชจ๋ ๋ดํฌ
- RNN์ ์๊ณ์ด ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ํ๋์ฉ ์ ๋ ฅ๋ฐ์ ๋๋ง๋ค ์ ๋ ฅ๋ ๋ฒกํฐ๋ค์ ์ข ํฉํด ์๋ ๋ฒกํฐ๋ฅผ ๋ง๋ฌ
- LSTM, GRU, language modeling, text sentiment analysis, machine translation
6์ 28์ผ ๊ฟํ
- Conv - Activation - pool
- stride - ํฝ์ ์์ง์ด๊ณ ์๊ฒ ์์ถ ์ํจ๋ค
-
$N-F\over S$ + 1 - feature map - ์ปจ๋ณผ๋ฃจ์ ๊ฑฐ์น ์ด๋ฏธ์ง์ ํน์ง ์ถ์ถ
- Pooling - ํํฐ๊ฐ ์ง๋๊ฐ ๋๋ง๋ค ํฝ์
๋ฌถ์
- ํ๊ท ํ๋ง
- ์ต๋๊ฐ ํ๋ง
- Conv - Normalize - Activation - Pool
6์ 29์ผ ๊ฟํ
-
์์ฉ RNN
- LSTM : ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ํด๊ฒฐ, sequential ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- GRU : RNN ์ ํฌํจํ๋ ์ ๊ฒฝ๋ง, ํ์ดํ ์น์ nn.Module ์์ ๋ฐ์
-
RNN์ ์ ๋ ฅ์ด ๋๋ฌด ๊ธธ์ด์ง๋ฉด gradient explosion, vanishing gradient ๋ฐ์
-
์๋๋ฒกํฐ ์ ์ :
__init__state()
-
forward ํจ์ ์ ์ : self.gru(๋ฐฐ์น์ฌ์ด์ฆ, ์ ๋ ฅ x ๊ธธ์ด, ์จ๊ฒจ์ง ์ฐจ์) 3d ํ ์
-
train, evaluate
6์ 30์ผ ๊ฟํ
- ์ธ์ฝ๋ : ์๋ฌธ์ ๋ด์ฉ์ ํ์ตํ๋ RNN, ์๋ฌธ์ ๋ป๊ณผ ๋ด์ฉ์ ์์ถํ์ฌ ๋ฌธ๋งฅ ๋ฒกํฐ(context vector)
- ๋์ฝ๋ : ์ธ์ฝ๋์ ๋ด์ฉ ๋ฒกํฐ ์ ๋ ฅ ๋ฐ์ ํ ํฐ๋ค์ ์ฐจ๋ก๋๋ก ์์ธก
- ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ์ฝ์ ๋ฐ๊ฒฌ
- ์์ฑ์(Generator)์ ์๋ณ์(Discriminator)๊ฐ ์๋ก ๊ฒฝ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๋ชจ๋ธ
- ์์ฑ์(Generator) : ์์ฑ๋ z๋ฅผ ๋ฐ์ ์ค์ ๋ฐ์ดํฐ์ ๋น์ทํ ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ํ์ต
- ์๋ณ์(Discriminator) : ์ค์ ๋ฐ์ดํฐ์ ์์ฑ์๊ฐ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ณํ๋๋ก ํ์ต
- ์ฝํ ์ธ ์ด๋ฏธ์ง(C)
- ์คํ์ผ ์ด๋ฏธ์ง(S)
7์ 1์ผ ๊ฟํ
- torchvisions.models ์ ๊ณต ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ์ฌ์ฉ
- 2๊ฐ ๋ชจ๋ ๊ตฌ์ฑ
- ๋ชจ๋ ์ปจ๋ณผ๋ฃจ์
๋ธ๋ก์ feature ๋ชจ๋์ ์ ์ ์ ์ด๊ฒฐ์ด๋ ์ ํ๋ ์ด์ด๋ Classifier ๋ชจ๋ ์ ์
- ์ปจํ ์ธ ์ค์ฐจ
- ์คํ์ผ ์ค์ฐจ
- 3*3 ์์ ํํฐ ๋ชจ๋ Conv ๋ ์ด์ด ์ฌ์ฉ
- ์์ ํํฐ๋ฅผ ์ฌ์ฉํจ์ผ๋ก ๋ ๋ง์ ReLUํจ์ ์ฌ์ฉ ๊ฐ๋ฅ, ๋ ๋ง์ ๋น์ ํ์ฑ ํ๋ณด
- ํจ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋๋ธํด๋ฆญํ๊ณ F12 ๋๋ฅด๋ฉด ํด๋์ค๊ฐ ์ ์ธ๋ ๋ถ๋ถ์ ํ์ธ ํ ์ ์์
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํด๋์ค๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฏ๋ก ๊ทธ ์๋์๋ฆฌ๋ฅผ ํ์ธ ํ ์ ์์
- opencl ๋ณ๋ ฌ ์ปดํจํ ์ ์ด์ฉ
- FastAPI main.py ์คํ ์ค๋ฅ
szjung@esp:/workspace/newworld/FastAPI$ uvicorn main:app --reload
INFO: Will watch for changes in these directories: ['/workspace/newworld/FastAPI']
ERROR: [Errno 98] Address already in use
- ํด๊ฒฐ ๋ฐฉ๋ฒ : ์ปจํ ์ด๋์์ ๋ํดํธ ํฌํฐ๊ฐ ์ด๋ฏธ ์ฌ์ฉ์ค์ด์ฌ์ ์๋๊ธฐ ๋๋ฌธ์
- uvicorn main:app --reload --host 0.0.0.0 --port 6565 ์ด๋ ๊ฒ ๋ค์ ์์ฐ๋ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํด์ค๋ค.
-
๋์ปค ๋ก๊ทธ ํ์ธํ๋ ๋ช ๋ น์ด
-
๋์ปค make up ํ์ผ ์คํํ๊ณ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ์ฐ๋ ๋ช ๋ น์ด
-
docker logs -f --tail 30 apisz1(ํ์ธํ๊ณ ์ถ์ ์ปจํ ์ด๋)
-
iterm2 ๋ฅผ ์ด์ฉํด์ FastAPI ํด๋๋ฅผ ๋ง๋ค๊ณ ์ค์ตํด๋ณธ๋ค.
- ssh ์ฌ์ฉ
- Django ๋ MVT ๋ชจ๋ธ์ด๋ค.(Model, View, Template)
- Template = main.html (ํ ํ๋ฆฟ, HTML, CSS)
- View = views.py, urls.py
- url -> views.py -> templates / main.html
- Batch Normalization
- Gradient vanishing/exploding ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง
- squash : sigmoid ์ด์ฉ
- Training : mini batch ๋์ moving averages
- Higher learning rate : U ์ ๋ํด์ ๋ณํ ์๊ณ , ์คํ๋ ค gradient ๊ฐ์
- CNN์์ BN Input ๋ํ๋ค.
- BN์ด ์ฃผ๋ ํจ๊ณผ Local optimum ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์ค์ด๋ ํจ๊ณผ
- x,y ์ถ ๋๋ฉ์ธ์ [0,1] ๋ฒ์๋ก ๋ณํํ๊ณ ์ ๊ทํ๋ฅผ ํ๋ค.
- Django ์คํฐ๋ ๊ฟํ!
- ๊ฐ์ํ๊ฒฝ์ด ํ์ํ ์ด์ ? : ์ฌ๋ฌ ํจํค์ง๋ค์ ํ๋ฐ ๋ชจ์์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
$ pip install virtualenv
- ์ค์นํ
$ virtualenv project_env
- ๊ฐ์ํ๊ฒฝ์ ํ์ํ ํ์ผ๋ค์ด ํ์ฌ ์์น ์๋์ project_env ๋ผ๋ ๋๋ ํ ๋ฆฌ ์์ ์ค์น ๋๋ ์
- ๋ง๋ค์ด์ง ๊ฐ์ํ๊ฒฝ์ ํ์ฑํํ๋ ค๋ฉด activate ๋ช ๋ น์ ์ ๋ ฅํ๋ค
$ source project_env/bin/activate
- ๊ฐ์ํ๊ฒฝ์์ ๋น ์ ธ๋์ค๋๋ฒ
deactivate
- ํ์ด์ฌ 3.4 ๋ถํฐ๋ venv๋ผ๋ ํจํค์ง๊ฐ ๊ธฐ๋ณธ์ผ๋ก ํฌํจ๋์ด ์์ด์ ๋ฐ๋ก virtualenv ์ค์นํ์ง ์์๋ ๊ฐ์ํ๊ฒฝ ์ด์ฉ ๊ฐ๋ฅ
$ python -m venv project_env
- ๊ฐ์ํ๊ฒฝ ํ์ฑํ ์ํค๋ ๋ฐฉ๋ฒ์ virtualenv ์ ๋์ผ
$ project_env/scripts/activate
- ๋ก์ปฌ์์ ๊ฐ์ํ๊ฒฝ์ ํ์ฑํ์ํค๊ณ ํ์ํ ๋ชจ๋ ํจํค์ง๋ค์ด ์ค์น๋์์ผ๋ฉด, ์ด๋ ํ๊ฒฝ์์๋ ๊ฐ์ ํจํค์ง๋ค์ด ํ ๋ฌถ์์ผ๋ก ์ค์น
- requirements.txt ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด ์ข์
$ pip freeze > requirements.txt
- ์๊ฒฉ ์๋ฒ์์ ์ดํ์ผ์ ์ด์ฉํด ์ผ๊ด ์ค์นํ๋ ๋ฐฉ๋ฒ
$ pip install -r requirements.txt
- users
- other services
- web server
- URLS.py
- Views
- models
- template
- ํ์ด์ฌ์ด ์ถ๊ตฌํ๋ ์ฒ ํ
python3
import this
- ํ๋ ์์ํฌ
- ๋ด์ฝ๋ > Django > Serving
- ์ฅ๊ณ ๊ฐ ์๋น์ ์ฃผ์ฒด ๋ด์ฝ๋๋ฅผ ๋ถ๋ฌ์ ์ฅ๊ณ ์์ ๊ตฌํํจ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ > ๋ด์ฝ๋ > Serving
- ๋ด์ฝ๋๊ฐ ์๋น์ ์ฃผ์ฒด ๋ด์ฝ๋๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ๊ตฌํํจ
- SRGAN ์คํฐ๋
- ๊ธฐ์กด PSNR๊ณผ MSE๋ pixel wise image ์ฐจ์ด ๊ธฐ๋ฐ์ผ๋ก ์ ์ ๋์ด ์์ด์ high texture datail์จ ๊ฐ์ ์ง๊ฐ์ (perceptual)์ฐจ์ด๋ฅผ ์ก๋๋ฐ ํ๊ณ ์กด์ฌ
- But SR GAN ๋ชจ๋ธ์ ๋๋ฆฌ๊ณ MOS Test๋ฅผ ํ ๊ฒฐ๊ณผ ResNet๋ณด๋ค ์ฐ์ํ ๊ฒฐ๊ณผ ๋์ถ
- ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ์ ์๋ 4๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ด์
- ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์ ์ ์ํ๋ฉด ์๊ฐ์ด ๋ง์ด ์์๋๊ณ ๋ฐฐํฌํ๋ ๋ฐ๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
- ๋ฉํ๋ฐ์ดํฐ๋ ํ์ํ ๋งํผ ์ ์ฐํ์ง ์๋ค. (๊ธฐ์กด ๋ฉํ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต๊ณ ๋น์ฉ์ด ๋ง์ด ๋ ๋ค)
-
๋ฐฉ๋ฒ - ๊ณํ์๋ฆฝ๊ณผ ์ถ์ , ์์คํ ๊ณผ ์ํํธ์จ์ด ๋ถ์, ์๋ฃ๊ตฌ์กฐ, ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ, ์ฝ๋ฉ, ํ ์คํ , ์ ์ง๊ด๋ฆฌ
-
๋๊ตฌ - ์ด๋ค ์ผ์ ์ํํ ๋ ์์ฐ์ฑ ํน์ ์ผ๊ด์ฑ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ค (์๊ตฌ ๊ด๋ฆฌ ๋๊ตฌ, ๋ชจ๋ธ๋ง ๋๊ตฌ, ํ์ ๊ด๋ฆฌ๋๊ตฌ, ๋ณ๊ฒฝ ๊ด๋ฆฌ ๋๊ตฌ)
-
์ ์ฐจ - ๋ฐฉ๋ฒ๊ณผ ๋๊ตฌ๋ฅผ ๊ฒฐํฉํ์ฌ, ์ํํธ์จ์ด๋ฅผ ํฉ๋ฆฌ์ ์ด๊ณ ์ ์์ ๊ฐ๋ฐํ ์ ์๋๋ก ํจ
-
์ฌ๋ - ์ํํธ์จ์ด๊ณตํ์์๋ ๋ง์ ๊ฒ(์๋ฆฝ, ๊ฐ์ , ์ ์ง ๋ฑ) ์ฌ๋๊ณผ ์กฐ์ง์ ์ํด์ ์์ง์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋์ ๋ํ ์์กด์ฑ์ด ์๋์ ์ผ๋ก ํผ
- ํ๋น์ฑ ๊ฒํ โ ๊ฐ๋ฐ ๊ณํ โ ์๊ตฌ์ฌํญ ๋ถ์ โ ์ค๊ณ โ ๊ตฌํ โ ํ ์คํธ โ ์ด์ฉ โ ์ ์ง๋ณด์
โฝ๋์ ํ ๋ชจ๋ธ
ํน์ง - ํ๋กํ ํ์ ์ ์ง์์ ์ผ๋ก ๋ฐ์ ์์ผ ์ต์ข ์ํํธ์จ์ด ๊ฐ๋ฐ๊น์ง ์ด๋ฅด๊ฒ ํ๋ ์ ์ฆ์ ์ธ ๋ฐฉ๋ฒ(Incremental development)
- ์ํ๊ด๋ฆฌ๊ฐ ์ค์ฌ์ธ ์๋ช ์ฃผ๊ธฐ ๋ชจ๋ธ
โฝ์ ์ฆ์ ๊ฐ๋ฐ(Incremental development)
-
์ ์ฆ์ ๊ฐ๋ฐ์ ๊ณ์ ์ค๊ฐ ๋ฒ์ ๋ค์ ์ถ๊ฐํด ์ด์ ๋ฒ์ ์ ๊ธฐ๋ฅ์ ๋ํด๊ฐ๋ฉฐ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ
-
๋ช ์ธํ(specification), ๊ฐ๋ฐ(development), ๊ฒ์ฆ(validation) ๋์์ ์งํ๋๋ค๋ ํน์ง
-
์๋ฅผ ๋ค๋ฉด "์น์ ๋ง๋ค ๋ ๋ฉ์ธํ๋ฉด, ๊ฒ์ํ, ๋ก๊ทธ์ธ ํ๋ฉด ๋ฑ์ด ํ์ํ๊ณ AWS๋ฅผ ์ฌ์ฉํ ๊ฒ" ์ ๋์ ์ค๋ช
์ํ๋จ๊ณ - ๊ณํ์๋ฆฝ(Planning) โ ์ํ๋ถ์(Risk Analysis) โ ๊ฐ๋ฐ/๊ตฌ์ถ(Engineering) โ ๊ณ ๊ฐํ๊ฐ(Evaluation)
-
๋์ ํ ๋ชจ๋ธ์ Less Document oriented, ์ฆ ๋ฌธ์๋ฅผ ํตํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ
-
์ ์์ผ ๋ชจ๋ธ์ Code oriented ์ค์ง์ ์ธ ์ฝ๋ฉ์ ํตํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ
-
๋์ ํ ๋ชจ๋ธ์ ํ๋ก์ ํธ ์ํ ์ ๋ฐ์ํ๋ ์ํ์ ๊ด๋ฆฌํ๊ณ ์ต์ํ ํ๋ ค๋ ๋ชฉ์ ์ ๊ฐ์ง๋ค.
-
์ ์์ผ ๋ชจ๋ธ์ ํ์ง์ ์ ํ ์์ด ๋ณํ๋ฅผ ์์ฉํ๊ณ ํ์ ์ ๊ฐ์กฐํ๊ณ '์ ํ์ ๋น ๋ฅธ ์ธ๋'๋ฅผ ๊ฐ์กฐํ๋ ๋ฐ๋ณต์ ๋ฐฉ๋ฒ
-
์๊ตฌ์ฌํญ ๋ถ์ ๋จ๊ณ ์ด์ : "์ด๋ป๊ฒ(How to)"๊ฐ ์๋๋ผ ๊ณ ๊ฐ ๊ด์ ์ "๋ฌด์(what)"์ ๋ง์ถฐ์ ธ ์๋ค.
-
"๋ฌด์(what)=๊ธฐํ์"์ "์ด๋ป๊ฒ(How to)" ๋ง๋ค ๊ฒ์ธ๊ฐ ํ๋ ๊ฐ๋ฐ์ ๋ฌธ์ ์ ์ผ์ ํน์ฑ์ ๋ง์ ์ฐจ์ด๊ฐ ์๋ค.
-
์๊ตฌ์ฌํญ ๋ถ์์ ์์ฉ๋ถ์ผ(Application) ๊ด์ ์์ ์์คํ ์ด ๋ฌด์จ ๊ธฐ๋ฅ์ ์ํํด์ผ ํ๋์ง ์ด์ ์ ๋ง์ถ์ด ์์คํ ์ ๋ชฉํ๋ฅผ ๊ธฐ์ , ๊ทธ ๊ธฐ๋ฅ์ด ๊ธฐ์ ์ (Engineering) ๊ด์ ์์ ์ด๋ป๊ฒ ์ํ๋ ๊ฒ์ธ์ง๋ ๊ธฐ์ ํ์ง ์์
-
์๊ตฌ์ฌํญ ๋ถ๋ฅ
-
์๊ตฌ์ฌํญ์ ํฌ๊ฒ ๊ธฐ๋ฅ์ ์ธก๋ฉด๊ณผ ๊ด๋ฆฌ์ ์ธก๋ฉด์ผ๋ก ๋ถ๋ฅ, ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ฅ์ ์ธก๋ฉด์ ์๊ตฌ์ฌํญ ๋ถ๋ฅ๊ฐ ๋ง์ด ํ์ฉ
-
Classification : ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๋ ๊ฒ์ผ๋ก ํด๋น ์ด๋ฏธ์ง ๋ด์ ๊ฐ์ฒด๊ฐ ๋ฌด์์ธ์ง ์๋ ค์ฃผ๋ ๊ฒ
-
๋ถ๋ฅ ๋ฌธ์ ๋ ๋ถ๋ฅํ ๊ฒ์ธ์ง ํ๋์ธ์ง ์ฌ๋ฌ๊ฐ์ง์ธ์ง์ ๋ฐ๋ผ Single Label Classification, Multi Label Classification ๋๋จ
-
- Single Label Classification: ๋ถ๋ฅํด์ผํ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ class ์ค (3๊ฐ ์ด์) ํ ๊ฐ์ง์ธ ๊ฒฝ์ฐ๋ฅผ Single Label Classification ํน์ Multi Class Classification
-
- Multi Label Classification: ๋ถ๋ฅํด์ผํ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ class ์ค ํ ๊ฐ์ง ์ด์์ธ ๊ฒฝ์ฐ Multi Label Classification
-
Object Detection : ์ด๋ฏธ์ง๋ ์์ ๊ฐ์ฒด(Objects)๊ฐ ๋ฌด์์ธ์ง ๋ถ๋ฅํ๊ณ ๊ฐ์ฒด์ ์์น๊น์ง ์ธ์ํด์ฃผ๋ ๊ธฐ์ ๋ก ๋ถ๋ฅ์ ์์น์ธ์์ด ๋์์ ๊ฐ๋ฅ
-
์ฌ์ฉํ๋ ML ํ๋ ์์ํฌ : Tensorflow, Pytorch
-
zero-shot learning: ์ฒ์๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅ ๊ฐ๋ฅํ๋๋ก ํ์ตํ๋ ๊ฒ
-
์ปดํจํฐ ๊ฟํ
- ์ค์๋ก ์ฐฝ ๋ซ์์ ๋
- window : ctrl + shift + t
- mac : command + shift + t
-
SCP๋?
-
ssh ์๊ฒฉ ์ ์ ํ๋กํ ์ฝ ๊ธฐ๋ฐ์ผ๋ก ํ SecureCopy(scp)์ ์ฝ์๋ก์ ์๊ฒฉ์ง์ ์๋ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๊ฐ์ ธ์ฌ๋ ์ฌ์ฉํ๋ ํ์ผ ์ ์ก ํ๋กํ ์ฝ์ด๋ค.
-
- ๋จ์ผ ํ์ผ ์๊ฒฉ์ง๋ก ๋ณด๋ผ๋
- ๊ตฌ๋ฌธ: #scp[์ต์ ][ํ์ผ๋ช ][์๊ฒฉ์ง_id]@[์๊ฒฉ์ง_ip]:[๋ฐ๋์์น]
- ์์: #scp [email protected]:/tmp/testclient
-
- ๋ณต์์ ํ์ผ์ ์๊ฒฉ์ง๋ก ๋ณด๋ผ๋
- ๊ตฌ๋ฌธ: #scp[์ต์ ][ํ์ผ๋ช 1][ํ์ผ๋ช 2][์๊ฒฉ์ง_id]@[์๊ฒฉ์ง_ip]:[๋ฐ๋์์น]
- ์์: #scp testfile1 testfile2 [email protected]:/tmp/testclient
-
- ์ฌ๋ฌ ํ์ผ์ ํฌํจํ๊ณ ์๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์๊ฒฉ์ง๋ก ๋ณด๋ผ๋(-r์ต์ ์ฌ์ฉ)
- ๊ตฌ๋ฌธ: #scp[์ต์ ][๋๋ ํ ๋ฆฌ์ด๋ฆ][์๊ฒฉ์ง_id]@[์๊ฒฉ์ง_ip]:[๋ณด๋ผ๊ฒฝ๋ก]
- ์์: #scp -r testgo [email protected]:/tmp/testclient
-
SRGAN ๋ฐ๋ผํ๊ธฐ
-
์ถ์ฒ : https://velog.io/@hyun-wle/SRGAN-%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B0
-
DIV2K ๋ฐ์ดํฐ์ ์ผ๋ก SRGAN ํ์ต ์๋ฃ
-
epoch 100๋ฒ ๋๋ ค์ ํ์ตํด๋ด
-
HR๋ณด๋ค๋ ํ์ง์ด ์ข์ง๋ ์์ง๋ง LR๋ณด๋ค๋ ํ์ง์ด ํจ์ฌ ์ข์์ก๋ค.
-
ํ์ดํ ์น CUDA
8์ 5์ผ
- L1,L2, Loss ๊ฐ์ด๋ ๋ฌด์์ธ์ง ์ ๋ฆฌ
- ์ฐ์ Norm์ ์์์ผํ๋ค.
- Norm = ์ ๋๊ฐ์ด ์๋๋ผ, ๋ง์ Norm ์ค ํ๋๊ฐ ์ ๋๊ฐ์ด๋ค. |-1|=1 dlfjstlr
- ์ ๋๊ฐ์ด ์๋๋ผ ๋ฒกํฐ์ํฌ๊ธฐ ์ด๊ธฐ๋ ํ๋ค.|(1,2)|
- ์ํ์ ์ ์๋ ๋ณต์กํ์ง๋ง ์ด๋ค ๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ์ฌ, ๋น๊ต๊ฐ ๊ฐ๋ฅํ๊ฒํ๋ ํจ์
- ์ ๊ทธ๋ฆผ์ฒ๋ผ L1์ ๋๊ฐ์ ๋ฒกํฐ๋ฅผ ๋นผ๊ณ , ์ ๋๊ฐ์ ์ทจํ ๋ค, ํฉํ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค๋ฉด, x=(1,2,3), y=(-1,2,4) ๋ผ๋ฉด d(x,y)=|1-(-1)|+|2-2|+|3-4|=2+0+1=3 ์ด๋ค.
- ์ ๊ทธ๋ฆผ์ฒ๋ผ L2๋ ๋ ๊ฐ์ ๋ฒกํฐ์ ๊ฐ ์์๋ฅผ ๋นผ๊ณ , ์ ๊ณฑ์ ํ๊ณ , ํฉ์น๊ณ , ๋ฃจํธ๋ฅผ ์์ด ๊ฒ์ด๋ค. ์๋ฅผ ๋ค๋ฉด, x=(1,2,3), y=(-1,2,4) ๋ผ๋ฉด d(x,y)=root(4+0+1) = root(5)์ด๋ค. ๋๊ฐ ๋ฒกํฐ(์ ) ์ฌ์ด์ ์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๋งํ๋ค.
- ๋ ๊ฐ์ ๊ฒ์์ (๋ฒกํฐ)๋ฅผ ์๋ ์ฌ๋ฌ ์ ๋ค์ด ์กด์ฌํ๋ค. ๋ฒกํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ๋ ์๋ก ๋ค๋ฅธ Norm์ ํ๊ธฐํ ์ ์ด๋ค. ์ด๋ก์์ ์ด L2์ด๊ณ ๋๋จธ์ง๋ ๋ค๋ฅธ ๊ฒฝ๋ก์ด์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฐ์ L1 Norm ์ด๋ค. ์๊ฐ์ ํน์ฑ ๋๋ฌธ์ Taxicab geometry ๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
- ๋ ๊ฐ์ ๋ฒกํฐ๊ฐ ๋ค์ด๊ฐ๋ ์๋ฆฌ์ ์ค์ ํ๊ฒ๊ฐ(y_true)์ ์์ธก ํ๊ฒ๊ฐ(y_pred)๊ฐ ๋ค์ด๊ฐ ์๋ค.
- Least Absolute Deviations(LAD), Least Absolute Errors(LAE), Least Absolute Value(LAV), Least Absolute Residual(LAR) ๋ฑ์ผ๋ก๋ ๋ถ๋ฆฐ๋ค.
- L1 Loss๋ L2 Loss์ ๋นํด ์ด์์น(Outlier)์ ์ํฅ์ ๋ ๋ฐ๋, Robustํ ํน์ฑ์ ๊ฐ์ง๊ณ , 0์์ ๋ฏธ๋ถ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- L2 Loss๋ ๋ค๋ฅด์ง ์๋ค. ๋ค๋ง ์ต์ข ์ ์ผ๋ก ๋ฃจํธ๋ฅผ ์ทจํ์ง ์๋๋ค๋ ์ฐจ์ด๊ฐ ์๋ค.
- Least Squares Error(LSE, ์ต์์์น๋ฒ)dmfheh qnfflsek.
- ๋ ๊ฐ ๊ฐ์ ์ ๋๊ฐ์ ๊ณ์ฐํ๋ L1 Loss์ ๋ฌ๋ฆฌ L2 Loss๋ ์ ๊ณฑ์ ์ทจํ๊ธฐ๋๋ฌธ์, ์ด์์น๊ฐ ๋ค์ด์ค๋ฉด ์ค์ฐจ๊ฐ ์ ๊ณฑ์ด ๋์ด ์ด์์น์ ๋ ์ํฅ์ ๋ฐ๋๋ค.
- ๋ฐ๋ผ์ ์ด์์น๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ ์ฉํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ถ์ด ์๋ค.
Reference : https://junklee.tistory.com/29
- Super Resolution ๊ด๋ จ ๋ ผ๋ฌธ์ ์ฝ๋ค๋ณด๋ฉด PSNR๊ณผ SSIM ๊ฐ ๋์จ๋ค.
- estimated value(์์ธก๊ฐ), ์์ง๋ชปํ๋ parameter ๊ฐ ์ฐจ์ด๋ฅผ ์ ๊ณฑ ํฉ ํ๊ท ์ ๋ธ ๊ฒ์ด๋ค.
- ML:Regression์ด๋ DNN์์ ๋ง์ด ์ฌ์ฉํ๋ loss function์ด๋ค.
- ์ด๋ฏธ์ง๋ค ๊ฐ์ ๋น๊ต์์ pixel-wise ๋ก ๋น๊ตํ๋ค.
- ๋ง์ iteration์ ํตํด parameter๋ฅผ estimated value์ ๊ฐ๊น๊ฒ ๋ง๋๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- ์์์ด๋ ๋์์ ์์ค๋ก ์ธํ์ฌ ํ์ง ์์ค ์ ๋ณด๋ฅผ ํ๊ฐํ ๋ ์ฌ์ฉ
- MSE๋ฅผ ์ด์ฉํ์ฌ ๊ณ์ฐํ ์ ์์ผ๋ MSE๋ฅผ ์ฌ์ฉํ ๋ ๊ธฐ์ค์ผ๋ก ๋ง์ด ์ฌ์ฉ
- ๋จ์ : dB์ด๊ณ , MSE๊ฐ ์ ์์๋ก PSNR์ด ๋๋ค.
- MSE๊ฐ ์๋ค๋ ๊ฒ์ ์๋ณธ๊ณผ ๋งค์ฐ ๊ฐ๊น๋ค ํน์ ์๋ณธ์ผ๋ก ํ๋ ๋ ์ ๋์ด๋ค๋ผ๊ณ ํด์ํ๋ฉด ๋๊ณ ์๋ฏธ๊ฐ ๊ฒฐ๊ณผ๋ก ์ ์ผ๋ก PSNR์ด ๋๋ค๋ผ๊ณ ํด์ ๊ฐ๋ฅ
- ๊ทธ๋ฌ๋ MSE๋ high texture details์ ๋ํ ์์ค ๋ณต์์ ์ด๋ ต๊ธฐ ๋๋ฌธ์ MSE๊ฐ ์์ PSNR์ด ๋์ ๊ฒ์ด ๊ผญ ๊ณ ํด์๋๋ฅผ ์๋ฏธํ์ง๋ ์์
- ์ด๋ฏธ์งํ์ง ํ๊ฐ๋ฅผ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์๊ฐ์ ํ์ง ์ฐจ์ด ๋ฐ ์ ์ฌ๋ ํ๊ฐ ์ํด ๊ณ ์
- ์ด๋ฏธ์ง์ Luminance(l), Contrast(c), Structure(s)๋ฅผ ๋น๊ตํ๋๋ฐ ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์๋ ์์ผ๋ก ๋ํ ๋ผ ์ ์์
- ์ด๋ก
- 2019๋ ๋ ์ถ์, AVIF๋ AV1 ๋น๋์ค ์ฝ๋ฑ์ ํตํด ์ธ์ฝ๋ฉ๋ I-ํ๋ ์์ ๊ทธ๋๋ก ์ด๋ฏธ์ง๋ก ์ฌ์ฉํ ์ ์๋๋ก AOMedia์์ ๋ณ๋์ ์ด๋ฏธ์ง ์ปจํ ์ด๋๋ก ๊ฐ๋ฐ๋จ
- ์์ ์ํํธ์จ์ด ๊ด์ ์์๋ WebP์ ํ๊ณ์ ๊ฒฉ, HEIF(+H.265)์ ๋ง์๋ ๋ํญ๋ง์ ์ฑ๊ฒฉ์ ์ง๋
- 2010๋ ๊ตฌ๊ธ์์ ๋ง๋ ์ด๋ฏธ์ง ํฌ๋งท, Web์ ์ํด์ ๋ง๋ค์ด์ง ํจ์จ์ ์ธ ์ด๋ฏธ์ง ํฌ๋งท
- ๊ธฐ์กด ์ด๋ฏธ์ง ํฌ๋งท์ด ๋น์์ค ์์ถ(GIF, PNG), ์์ค์์ถ(JPEG) ์ผ๋ก ๋๋ ์ ธ ์์๋๋ฐ WebP๋ ๋ ๋ค ์ง์
jung@esp:/workspace/newworld/Processing/ja-ma/iccv19_attribute$ python main.py --approach=inception_iccv --experiment=foottraffic --batch_size 16 --print_freq 1
/home/jung/.local/lib/python3.8/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")
- ๊ธฐ์กด ์ปจํ ์ด๋์ ๊น๋ ค์๋ ํ์ดํ ์น ๋ฒ์ ์ด ์๋ง์์ ์คํ์ด ์๋์๋ค.
/home/jung/.local/lib/python3.8/site-packages/torch/cuda/__init__.py:146: UserWarning:
NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the NVIDIA GeForce RTX 3090 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))
Learning Rate: 0.0001
jung@esp:/workspace/newworld/Processing/ja-ma/iccv19_attribute$ nvidia-smi
Tue Aug 16 02:25:52 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.68.02 Driver Version: 510.68.02 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:28:00.0 Off | N/A |
| 30% 29C P8 30W / 350W | 2MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce ... On | 00000000:43:00.0 Off | N/A |
| 30% 30C P8 19W / 350W | 2MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 2 NVIDIA GeForce ... On | 00000000:A4:00.0 Off | N/A |
| 94% 84C P2 336W / 350W | 17587MiB / 24576MiB | 100% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 3 NVIDIA GeForce ... On | 00000000:C3:00.0 Off | N/A |
| 30% 27C P8 19W / 350W | 12887MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
- ๋ด ์ปจํ ์ด๋์ ๊น๋ ค์๋ ํ์ด์ฌ ๋ฒ์ ์ ํ์ธํด๋ณธ๋ค.
jung@esp:/workspace/newworld/Processing/ja-ma/iccv19_attribute$ python
Python 3.8.10 (default, Mar 15 2022, 12:22:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
torch>>> torch.__version__
'1.12.1+cu102'
- ํ์ธํด๋ณด๋ torch ๋ฒ์ ์ด ๋ฌ๋๋ค....
jung@esp:/workspace/newworld/Processing/ja-ma/iccv19_attribute$ pip3 uninstall torch torchvision torchaudio
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
$ python
>>> import torch
>>> torch.__version__
'1.12.1+cu116'
- ๋ฆฌ๋ ์ค ํด๋ ์ ์ฒด ๋ณต์ฌ
cp -r ์๋ณธ ํด๋ /๋ชฉ์ ์ง ํด๋
cp -r a /test/b
- Weighted_BCELoss was proposed in "Multi-attribute learning for pedestrian attribute recognition in surveillance scenarios"[13].
- Weighted_BCELoss ๋ "๋ค์ค์์ฑํ์ต"์ ๊ฐ์ ์๋๋ฆฌ์ค์์ ์ ์ฉํจ https://pytorch.org/docs/stable/generated/torch.nn.BCEWithLogitsLoss.html
- ์ด์์คํจ์๋ sigmoid ๋ ์ด์ด์ BCELoss๋ฅผ ํ๋์ ๋จ์ผ ํด๋์ค๋ก ๊ฒฐํฉํฉ๋๋ค.
- ์ด ์ฐ์ฐ์ ํ๋์ ๋ ์ด์ด๋ก ๊ฒฐํฉํ์ฌ ์ํผ์ ์์ ์ฑ์ ์ํด log sum exp ํธ๋ฆญ์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ sigmoid ๋ค์์ BCELoss๋ฅผ ์ฌ์ฉํ๋๊ฒ๋ณด๋ค ์์น์ ์ผ๋ก ๋ ์์ ์ ์ด๋ค.
- PAR ๋
ผ๋ฌธ์ ๋ฐฑ๋ณธ์
google inception v2
์ธ๋ฐ ์ด ๋ ผ๋ฌธ์์๋ batch normalization์ ํตํด bninceptionNet์ ๋ฐฑ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค. - https://sh-tsang.medium.com/review-batch-normalization-inception-v2-bn-inception-the-2nd-to-surpass-human-level-18e2d0f56651
- GoogleNet๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ค ์ฝ์ด๋ด์ผํจ
CUDA_VISIBLE_DEVICES=2 python main.py --approach=inception_iccv --experiment=foottraffic --batch_size 8 --print_freq 100
-
์ง๊ธ ํ์ฌ ๋๋ฆฌ๋ ๋ชจ๋ธ : ์ง๋ ํ์ต (Dataset = Data + label)
-
๊ตฌํด์ผํ๋ output : loss์ ๋ค์ด๊ฐ๋ ๋ผ๋ฒจ ํค๊ฐ๊ณผ ํ๋ผ๋ฏธํฐ๊ฐ์ csv๋ก ๋ง๋ ๋ค.
-
Loss ๋ : ๋ชจ๋ธ์ ์์ธก์ด ๋ผ๋ฒจ๊ณผ ์ผ๋ง๋ ์ฐจ์ด๊ฐ ๋๋์ง ์ธก์
-
Input(์ ๋ ฅ)=x, Output(์ถ๋ ฅ)=y, Label(์ค์ ์ ๋ต)=d
-
๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฐ = x, d
-
y = W(weight)*x + b(bias)
-
Loss = d - y
-
Loss ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ
- Error Function(=Loss function)
- ์ด์ง๋ถ๋ฅ = BCELoss(Binary Cross Entropy Loss)
-
์ด์ง๋ถ๋ฅ๋?
- ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋, ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ ๊ฐ์ง ์ ๋ต ์ค ํ๋๋ก ๋ถ๋ฅํ๋ ๊ฒ ์๋ฏธ
- ์๋ก ํ๊ธธ๋์ด๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์๋,
- ํด๋น ๋ฐ์ดํฐ๊ฐ ์ฌ๋์ด๋ ์๋๋์ ๋ํ ์ ๋ต์ด 1๊ณผ 0 ์ค ํ๋ํ๋ฉด, ํด๋น ๋ฐ์ดํฐ๊ฐ 1์ผ ํ๋ฅ ์ด ์ถ๋ ฅ๋๊ณ , ํด๋น ํ๋ฅ ์ด 0.5์ด์์ด๋ฉด, 1๋ก ํ๋จํ๊ฒ ๋๋ค.
- binary cross entropy loss ์์์์ y hat์ 0๊ณผ 1 ์ฌ์ด์ ์ฐ์์ ์ธ ์๊ทธ๋ชจ์ด๋ ํจ์ ์ถ๋ ฅ๊ฐ์ ์๋ฏธํ๋ฉฐ, y๋ ๋ถ์ฐ์์ ์ธ ์ค์ ๊ฐ์ ์๋ฏธ
- ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋, ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ ๊ฐ์ง ์ ๋ต ์ค ํ๋๋ก ๋ถ๋ฅํ๋ ๊ฒ ์๋ฏธ
-
๋ฉํฐ ์ด์ง ๋ถ๋ฅ
- ๋ง์ฝ ์ง๋ฌธ ํญ๋ชฉ์ด ์ฌ๋ฌ๊ฐ์ด๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ๋ํ ์ ๋ต์ด ๋ ๊ฐ์ง๋ผ๋ฉด ์ด๋ฅผ ๋ฉํฐ ์ด์ง ๋ถ๋ฅํ๊ณ ํ๋ค.
-
๋ค์ค ๋ถ๋ฅ
- ๋ง์ฝ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋, ์ง๋ฌธ ํญ๋ชฉ์ 1๊ฐ์ด์ง๋ง, ํด๋น ํญ๋ชฉ์ ๋ํ ์ ๋ต์ ์ธ๊ฐ์ง ์ด์์ด๋ผ๋ฉด, ์ด๋ฅผ ๋ค์ค ๋ถ๋ฅ๋ผ๊ณ ํ๋ค.
- ์๋ก ํ๊ธธ๋์ด๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง๋,
- ํด๋น ๋ฐ์ดํฐ๋ฅผ ํค๊ฐ ํฌ๋, ์ค๊ฐ์ด๋, ์์์ง๋ก ๋ถ๋ฅํ ์ ์๋ค.
- ์ด๋๋ ์ด์ฉ ์ ์์ด sigmoid ํจ์๊ฐ ์๋ softmax ํจ์๊ฐ ํ์ํ๋ค.
- ๋ง์ฝ, ์ง๋ฌธ ํญ๋ชฉ์ด n ๊ฐ์ด๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ๋ํ ์ ๋ต์ด ์ธ๊ฐ์ง ์ด์์ด๋ผ๋ฉด, ๊ฐ ์ง๋ฌธ์ ๋ํด ๊ฐ๊ฐ softmaxํจ์๋ฅผ ์ ์ฉํด, ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ฌ๋ฌ ํญ๋ชฉ์ ๋ํ ๋ค์ค ๋ถ๋ฅ ์์
์ ์ํํ ์ ์๋ค.
- ๋ง์ฝ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋, ์ง๋ฌธ ํญ๋ชฉ์ 1๊ฐ์ด์ง๋ง, ํด๋น ํญ๋ชฉ์ ๋ํ ์ ๋ต์ ์ธ๊ฐ์ง ์ด์์ด๋ผ๋ฉด, ์ด๋ฅผ ๋ค์ค ๋ถ๋ฅ๋ผ๊ณ ํ๋ค.
-
์์ธก๊ฐ์ด ๋จ์ผ ํญ๋ชฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ค๋ฉด (ex, [0.5])
- ๋จ์ ์ด์ง ๋ถ๋ฅ์ด๋ฏ๋ก, ๋ชฉ์ ํจ์๋ก Binary Cross Entropy ๋ฅผ ์ฌ์ฉ
-
์์ธก๊ฐ์ด ์ฌ๋ฌ๊ฐ์ ํญ๋ชฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ํ๋ฅ ํฉ์ด 1 ์ด ๋์ด๊ฐ๋ค๋ฉด (ex, [0.7, 0.6, 0.4])
- ๋ฉํฐ ์ด์ง ๋ถ๋ฅ์ด๋ฏ๋ก, ๋ชฉ์ ํจ์๋ก Binary Cross Entropy ๋ฅผ ์ฌ์ฉ
-
์์ธก๊ฐ์ด ์ฌ๋ฌ๊ฐ์ ํญ๋ชฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ํ๋ฅ ํฉ์ด 1 ์ด๋ผ๋ฉด (ex, [0.5, 0.2, 0.3])
- ๋ค์ค ๋ถ๋ฅ์ด๋ฏ๋ก, ๋ชฉ์ ํจ์๋ก Cross Entropy ๋ฅผ ์ฌ์ฉ
reference : https://wooono.tistory.com/387