เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเฉฑเจธเจพเจเจเจพ เจเจฟ เจเจฟเจตเฉเจ 30 เจฎเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเจธเจผเฉเจจ เจฒเจฐเจจเจฟเฉฐเจ เจตเจพเจคเจพเจตเจฐเจจ เจธเฉเจ เจ
เจช เจเจฐเจจเจพ เจนเฉ, เจเจฟเฉฑเจคเจฐ เจชเจเจพเจฃ เจฒเจ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจฌเจฃเจพเจเจฃเจพ เจนเฉ, เจ
เจคเฉ เจซเจฟเจฐ เจเจธเฉ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจเฉเจฐเจพเจซเจฟเจเจธ เจชเฉเจฐเฉเจธเฉเจธเจฐ (GPU) 'เจคเฉ เจเจฒเจพเจเจฃเจพ เจนเฉเฅค
เจชเจนเจฟเจฒเจพเจ, เจเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเฉเจ เจเจฟ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจเฉ เจนเฉเฅค
เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจเจน เจเฉฑเจ เจเจฃเจฟเจคเจฟเจ เจฎเจพเจกเจฒ เจนเฉ, เจจเจพเจฒ เจนเฉ เจเจธเจฆเฉ เจธเฉเจซเจเจตเฉเจ เจฐ เจเจพเจ เจนเจพเจฐเจกเจตเฉเจ เจฐ เจฆเจพ เจฐเฉเจช เจนเฉ, เจเฉ เจเจฟ เจเฉเจต-เจตเจฟเจเจฟเจเจจเจ เจคเฉฐเจคเฉ เจจเฉเจเจตเจฐเจเจพเจ เจฆเฉ เจธเฉฐเจเจ เจจ เจ เจคเฉ เจเฉฐเจฎเจเจพเจ เจฆเฉ เจธเจฟเจงเจพเจเจค 'เจคเฉ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ - เจเฉฑเจ เจเฉเจตเจค เจเฉเจต เจฆเฉ เจจเจฐเจต เจธเฉเฉฑเจฒเจพเจ เจฆเฉ เจจเฉเจเจตเจฐเจ. เจเจน เจงเจพเจฐเจจเจพ เจฆเจฟเจฎเจพเจ เจตเจฟเฉฑเจ เจนเฉเจฃ เจตเจพเจฒเฉเจเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเจพ เจ เจงเจฟเจเจจ เจเจฐเจจ เจ เจคเฉ เจเจนเจจเจพเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจฎเจพเจกเจฒ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจชเฉเจฆเจพ เจนเฉเจเฅค
เจจเจฟเจเจฐเจฒ เจจเฉเจเจตเจฐเจ เจธเจผเจฌเจฆ เจฆเฉ เจเจฎ เจ เจฐเจฅเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเจฟเฉฑเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจธเจฟเฉฑเจเจฃ เจฆเฉ เจฏเฉเจเจคเจพ เจชเจฐเฉฐเจชเจฐเจพเจเจค เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจจเจพเจฒเฉเจ เจจเจฟเจเจฐเจฒ เจจเฉเจเจตเจฐเจ เจฆเฉ เจฎเฉเฉฑเจ เจซเจพเจเจฆเจฟเจเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉเฅค เจคเจเจจเฉเจเฉ เจคเฉเจฐ 'เจคเฉ, เจธเจฟเฉฑเจเจฃ เจตเจฟเฉฑเจ เจจเจฟเจเจฐเฉเจจเจธ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจเฉเจจเฉเจเจธเจผเจจเจพเจ เจฆเฉ เจเฉเจฃเจพเจ เจจเฉเฉฐ เจฒเฉฑเจญเจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจธเจฟเจเจฒเจพเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจจเจฟเจเจฐเจฒ เจจเฉเจเจตเจฐเจ เจเจจเจชเฉเจ เจกเฉเจเจพ เจ เจคเฉ เจเจเจเจชเฉเฉฑเจ เจกเฉเจเจพ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจ เจฆเฉ เจจเจพเจฒ-เจจเจพเจฒ เจธเจงเจพเจฐเจฃเจเจฐเจจ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
เจฎเจธเจผเฉเจจ เจฒเจฐเจจเจฟเฉฐเจ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเจเจตเจฐเจ เจชเฉเจเจฐเจจ เจฎเจพเจจเจคเจพ เจตเจฟเจงเฉเจเจ, เจตเจฟเจคเจเจฐเฉ เจฆเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ, เจเจฒเฉฑเจธเจเจฐเจฟเฉฐเจ เจตเจฟเจงเฉเจเจ เจ เจคเฉ เจนเฉเจฐ เจคเจฐเฉเจเจฟเจเจ เจฆเจพ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจเฉเจธ เจนเฉเฅค
เจเจชเจเจฐเจฃ
เจชเจนเจฟเจฒเจพเจ, เจเจ เจธเจพเจเจผ-เจธเจพเจฎเจพเจจ เจจเฉเฉฐ เจตเฉเจเฉเจ. เจธเจพเจจเฉเฉฐ เจเจธ 'เจคเฉ เจธเจฅเจพเจชเจฟเจค เจฒเฉเจจเจเจธ เจเจชเจฐเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจตเจพเจฒเจพ เจธเจฐเจตเจฐ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจฎเจธเจผเฉเจจ เจธเจฟเจเจฒเจพเจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจฒเฉเฉเฉเจเจฆเจพ เจเจชเจเจฐเจฃ เจเจพเจซเจผเฉ เจธเจผเจเจคเฉเจธเจผเจพเจฒเฉ เจนเฉ เจ
เจคเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ, เจฎเจนเจฟเฉฐเจเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจฒเจ เจเจฟเจจเฉเจนเจพเจ เจเฉเจฒ เจนเฉฑเจฅ เจตเจฟเฉฑเจ เจเฉฐเจเฉ เจฎเจธเจผเฉเจจ เจจเจนเฉเจ เจนเฉ, เจฎเฉเจ เจเจฒเจพเจเจก เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ เจฆเฉเจเจ เจชเฉเจธเจผเจเจธเจผเจพเจ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเฉเจฃ เจฆเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ. เจคเฉเจธเฉเจ เจฒเฉเฉเฉเจเจฆเฉ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจฒเจฆเฉ เจเจฟเจฐเจพเจ 'เจคเฉ เจฒเฉ เจธเจเจฆเฉ เจนเฉ เจ
เจคเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจธเจฎเฉเจ เจฒเจ เจนเฉ เจญเฉเจเจคเจพเจจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเจนเจจเจพเจ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจ เจเจฟเฉฑเจฅเฉ เจจเจฟเจเจฐเจฒ เจจเฉเจเจตเจฐเจ เจฌเจฃเจพเจเจฃเจพ เจเจผเจฐเฉเจฐเฉ เจนเฉ, เจฎเฉเจ เจฐเฉเจธเฉ เจเจฒเจพเจเจก เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฆเฉ เจธเจฐเจตเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเจพเจ. เจเฉฐเจชเจจเฉ NVIDIA เจคเฉเจ เจธเจผเจเจคเฉเจธเจผเจพเจฒเฉ Tesla V100 เจเฉเจฐเจพเจซเจฟเจเจธ เจชเฉเจฐเฉเจธเฉเจธเจฐเจพเจ (GPU) เจจเจพเจฒ เจฎเจธเจผเฉเจจ เจธเจฟเจเจฒเจพเจ เจฒเจ เจตเจฟเจธเจผเฉเจธเจผ เจคเฉเจฐ 'เจคเฉ เจเจฟเจฐเจพเจ 'เจคเฉ เจเจฒเจพเจเจก เจธเจฐเจตเจฐ เจชเฉเจธเจผ เจเจฐเจฆเฉ เจนเฉเฅค เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ: เจเฉฑเจ GPU เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจฐเจตเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจธเจฎเจพเจจ เจฒเจพเจเจค เจตเจพเจฒเฉ เจธเจฐเจตเจฐ เจฆเฉ เจคเฉเจฒเจจเจพ เจตเจฟเฉฑเจ เจเจ เจเฉเจฃเจพ เจตเจงเฉเจฐเฉ เจเฉเจธเจผเจฒ (เจคเฉเจเจผ) เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเฉ เจเจฃเจจเจพ เจฒเจ เจเฉฑเจ CPU (เจฎเจธเจผเจนเฉเจฐ เจเฉเจเจฆเจฐเฉ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจฏเฉเจจเจฟเจ) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเจน GPU เจเจฐเจเฉเจเฉเจเจเจฐ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจเจพเจฐเจจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเฉ เจเจฃเจจเจพเจตเจพเจ เจฆเจพ เจคเฉเจเจผเฉ เจจเจพเจฒ เจฎเฉเจเจพเจฌเจฒเจพ เจเจฐเจฆเจพ เจนเฉ.
เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจเจ เจฆเจฟเจจเจพเจ เจฒเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจฐเฉเจฆเจฟเจ เจนเฉ:
- SSD เจกเจฟเจธเจ 150 GB
- เจฐเฉเจฎ 32 เจเฉ.เจฌเฉ
- เจเฉเจธเจฒเจพ V100 16 เจเฉเจฌเฉ เจชเฉเจฐเฉเจธเฉเจธเจฐ 4 เจเฉเจฐ เจฆเฉ เจจเจพเจฒ
เจ เจธเฉเจ เจเจชเจฃเฉ เจฎเจธเจผเฉเจจ 'เจคเฉ เจเจฌเฉฐเจเฉ 18.04 เจธเจฅเจพเจชเจฟเจค เจเฉเจคเจพ เจนเฉเฅค
เจตเจพเจคเจพเจตเจฐเจฃ เจฆเฉ เจธเจฅเจพเจชเจจเจพ
เจเจ เจนเฉเจฃ เจธเจฐเจตเจฐ เจคเฉ เจเฉฐเจฎ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจนเจฐ เจเฉเจเจผ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเจ. เจเจฟเจเจเจเจฟ เจธเจพเจกเจพ เจฒเฉเจ เจฎเฉเฉฑเจ เจคเฉเจฐ 'เจคเฉ เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจ เจตเจพเจฒเจฟเจเจ เจฒเจ เจนเฉ, เจฎเฉเจ เจเฉเจ เจจเฉเจเจคเจฟเจเจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเจพ เจเฉ เจเจนเจจเจพเจ เจฒเจ เจฒเจพเจญเจฆเจพเจเจ เจนเฉเจฃเจเฉ.
เจตเจพเจคเจพเจตเจฐเจฃ เจธเจฅเจพเจชเจค เจเจฐเจจ เจตเฉเจฒเฉ เจฌเจนเฉเจค เจธเจพเจฐเจพ เจเฉฐเจฎ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจฆเฉเจเจฐเจพ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจเจชเจญเฉเจเจคเจพ เจตเจฟเฉฐเจกเฉเจเจผ เจจเฉเฉฐ เจเจชเจฃเฉ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเฉ เจเจเจธ เจตเจเฉเจ เจตเจฐเจคเจฆเฉ เจนเจจ. เจเจธ OS เจตเจฟเฉฑเจ เจฎเจฟเจเจฐเฉ เจเฉฐเจธเฉเจฒ เจฒเฉเฉเฉเจเจฆเฉ เจนเฉเจฃ เจฒเจ เจฌเจนเฉเจค เจเฉเจ เจเฉฑเจกเจฆเจพ เจนเฉเฅค เจเจธ เจฒเจ, เจ
เจธเฉเจ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจธเจพเจงเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ
ssh root@server-ip-or-hostname
เจธเจฐเจตเจฐ-เจเจเจชเฉ-เจเจพเจ-เจนเฉเจธเจเจจเจพเจฎ เจฆเฉ เจฌเจเจพเจ, เจเจชเจฃเฉ เจธเจฐเจตเจฐ เจฆเจพ IP เจชเจคเจพ เจเจพเจ DNS เจจเจพเจฎ เจฆเจฟเจเฅค เจ เฉฑเจเฉ, เจชเจพเจธเจตเจฐเจก เจฆเจฐเจ เจเจฐเฉ เจ เจคเฉ เจเฉเจเจฐ เจเฉเจจเฉเจเจธเจผเจจ เจธเจซเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเจธ เจตเจฐเจเจพ เจธเฉเจจเฉเจนเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-74-generic x86_64)
ML เจฎเจพเจกเจฒเจพเจ เจฆเฉ เจตเจฟเจเจพเจธ เจฒเจ เจฎเฉเฉฑเจ เจญเจพเจธเจผเจพ เจชเจพเจเจฅเจจ เจนเฉเฅค เจ
เจคเฉ เจฒเฉเจจเจเจธ เจเฉฑเจคเฉ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจฒเจ เจธเจญ เจคเฉเจ เจชเฉเจฐเจธเจฟเฉฑเจง เจชเจฒเฉเจเจซเจพเจฐเจฎ เจนเฉ
เจเจ เจเจธเจจเฉเฉฐ เจธเจพเจกเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเจเฅค
เจ เจธเฉเจ เจธเจฅเจพเจจเจ เจชเฉเจเฉเจ เจฎเฉเจจเฉเจเจฐ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเจเฉ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจ:
sudo apt-get update
เจเจฐเจฒ (เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเจชเจฏเฉเจเจคเจพ) เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ:
sudo apt-get install curl
เจเจจเจพเจเจพเจเจกเจพ เจกเจฟเจธเจเจฐเฉเจฌเจฟเจเจธเจผเจจ เจฆเจพ เจจเจตเฉเจจเจคเจฎ เจธเฉฐเจธเจเจฐเจฃ เจกเจพเจเจจเจฒเฉเจก เจเจฐเฉ:
cd /tmp
curl โO https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
เจเจ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ:
bash Anaconda3-2019.10-Linux-x86_64.sh
เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฒเจพเจเจธเฉเจเจธ เจธเจฎเจเฉเจคเฉ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเจจ เจฒเจ เจเจฟเจนเจพ เจเจพเจตเฉเจเจพเฅค เจธเจซเจฒเจคเจพเจชเฉเจฐเจตเจ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ 'เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจฆเฉเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
Thank you for installing Anaconda3!
ML เจฎเจพเจกเจฒเจพเจ เจฆเฉ เจตเจฟเจเจพเจธ เจฒเจ เจนเฉเจฃ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจซเจฐเฉเจฎเจตเจฐเจ เจฌเจฃเจพเจ เจเจ เจนเจจ, เจ
เจธเฉเจ เจธเจญ เจคเฉเจ เจชเฉเจฐเจธเจฟเฉฑเจง เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจพเจ:
เจซเจฐเฉเจฎเจตเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจจเจพเจฒ เจคเฉเจธเฉเจ เจตเจฟเจเจพเจธ เจฆเฉ เจเจคเฉ เจจเฉเฉฐ เจตเจงเจพ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจฎเจฟเจเจฐเฉ เจเฉฐเจฎเจพเจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเฉเจฒเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเจธ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ เจ เจธเฉเจ PyTorch เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจพเจเจเฉเฅค เจเจฒเฉ เจเจธเจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเจ:
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
เจนเฉเจฃ เจธเจพเจจเฉเฉฐ Jupyter Notebook, ML เจฎเจพเจนเจฟเจฐเจพเจ เจฒเจ เจเฉฑเจ เจชเฉเจฐเจธเจฟเฉฑเจง เจตเจฟเจเจพเจธ เจธเจพเจงเจจ เจฒเจพเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจก เจฒเจฟเจเจฃ เจ เจคเฉ เจเจธ เจฆเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉ เจจเจคเฉเจเฉ เจคเฉเจฐเฉฐเจค เจฆเฉเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจเฉเจชเฉเจเจฐ เจจเฉเจเจฌเฉเฉฑเจ เจเจจเจพเจเจพเจเจกเจพ เจฆเฉ เจจเจพเจฒ เจธเจผเจพเจฎเจฒ เจนเฉ เจ เจคเฉ เจธเจพเจกเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจนเฉ เจธเจฅเจพเจชเจฟเจค เจนเฉเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจกเฉเจธเจเจเจพเจช เจธเจฟเจธเจเจฎ เจคเฉเจ เจเจธ เจจเจพเจฒ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจชเฉเจฐเจ 8080 เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจตเจพเจฒเฉ เจธเจฐเจตเจฐ 'เจคเฉ Jupyter เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจพเจเจเฉ:
jupyter notebook --no-browser --port=8080 --allow-root
เจ เฉฑเจเฉ, เจธเจพเจกเฉ Cmder เจเฉฐเจธเฉเจฒ (เจเฉเจช เจฎเฉเจจเฉ - เจจเจตเจพเจ เจเฉฐเจธเฉเจฒ เจกเจพเจเจฒเจพเจ) เจตเจฟเฉฑเจ เจเฉฑเจ เจนเฉเจฐ เจเฉเจฌ เจเฉเจฒเฉเจนเจฃ เจจเจพเจฒ เจ เจธเฉเจ SSH เจฐเจพเจนเฉเจ เจธเจฐเจตเจฐ เจจเจพเจฒ เจชเฉเจฐเจ 8080 เจฐเจพเจนเฉเจ เจเจจเฉเจเจ เจเจฐเจพเจเจเฉ:
ssh -L 8080:localhost:8080 root@server-ip-or-hostname
เจเจฆเฉเจ เจ เจธเฉเจ เจชเจนเจฟเจฒเฉ เจเจฎเจพเจเจก เจฆเจพเจเจฒ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจฌเฉเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฑเจ เจเฉเจชเฉเจเจฐ เจเฉเจฒเฉเจนเจฃ เจฒเจ เจฒเจฟเฉฐเจ เจชเฉเจธเจผ เจเฉเจคเฉ เจเจพเจฃเจเฉ:
To access the notebook, open this file in a browser:
file:///root/.local/share/jupyter/runtime/nbserver-18788-open.html
Or copy and paste one of these URLs:
http://localhost:8080/?token=cca0bd0b30857821194b9018a5394a4ed2322236f116d311
or http://127.0.0.1:8080/?token=cca0bd0b30857821194b9018a5394a4ed2322236f116d311
เจเจ เจฒเฉเจเจฒเจนเฉเจธเจ:8080 เจฒเจ เจฒเจฟเฉฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเจเฅค เจชเฉเจฐเฉ เจฎเจพเจฐเจ เจจเฉเฉฐ เจเจพเจชเฉ เจเจฐเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจชเฉเจธเฉ เจฆเฉ เจธเจฅเจพเจจเจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจฆเฉ เจเจกเจฐเฉเฉฑเจธ เจฌเจพเจฐ เจตเจฟเฉฑเจ เจชเฉเจธเจ เจเจฐเฉเฅค เจเฉเจชเฉเจเจฐ เจจเฉเจเจฌเฉเฉฑเจ เจเฉเฉฑเจฒเฉเจน เจเจพเจตเฉเจเฉเฅค
เจเจฒเฉ เจเฉฑเจ เจจเจตเฉเจ เจจเฉเจเจฌเฉเฉฑเจ เจฌเจฃเจพเจเจ: เจจเจตเฉเจ - เจจเฉเจเจฌเฉเฉฑเจ - เจชเจพเจเจฅเจจ 3เฅค
เจเจ เจ เจธเฉเจ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเฉ เจธเจพเจฐเฉ เจญเจพเจเจพเจ เจฆเฉ เจธเจนเฉ เจเจพเจฐเจตเจพเจ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจเฅค เจเจฒเฉ เจเฉเจชเฉเจเจฐ เจตเจฟเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจชเจพเจเจเฉเจฐเจ เจเฉเจก เจฆเจฐเจ เจเจฐเฉเจ เจ เจคเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ (เจฐเจจ เจฌเจเจจ) เจจเฉเฉฐ เจเจฒเจพเจ:
from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)
เจจเจคเฉเจเจพ เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจธเจฎเจพเจจ เจจเจคเฉเจเจพ เจนเฉ, เจคเจพเจ เจ
เจธเฉเจ เจธเจญ เจเฉเจ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉเจเจซเจฟเจเจฐ เจเจฐ เจฒเจฟเจ เจนเฉ เจ
เจคเฉ เจ
เจธเฉเจ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจตเจฟเจเจธเจฟเจค เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ!
เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจฌเจฃเจพเจเจฃเจพ
เจ
เจธเฉเจ เจเจฟเฉฑเจคเจฐ เจชเจเจพเจฃ เจฒเจ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจฌเจฃเจพเจตเจพเจเจเฉเฅค เจเจฒเฉ เจเจธ เจจเฉเฉฐ เจเฉฑเจ เจ
เจงเจพเจฐ เจตเจเฉเจ เจฒเฉเจเจฆเฉ เจนเจพเจ
เจ เจธเฉเจ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเฉเจฃ เจฒเจ เจเจจเจคเจ เจคเฉเจฐ 'เจคเฉ เจเจชเจฒเจฌเจง CIFAR10 เจกเฉเจเจพเจธเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค เจเจธ เจฆเฉเจเจ เจเจฒเจพเจธเจพเจ เจนเจจ: โเจนเจตเจพเจ เจเจนเจพเจเจผโ, โเจเจพเจฐโ, โเจชเฉฐเจเฉโ, โเจฌเจฟเฉฑเจฒเฉโ, โเจนเจฟเจฐเจจโ, โเจเฉเฉฑเจคเจพโ, โเจกเฉฑเจกเฉโ, โเจเฉเฉเจพโ, โเจเจนเจพเจเจผโ, โเจเจฐเฉฑเจโเฅค CIFAR10 เจตเจฟเฉฑเจ เจเจฟเฉฑเจคเจฐ 3x32x32 เจนเจจ, เจฏเจพเจจเฉ 3x32 เจชเจฟเจเจธเจฒ เจฆเฉ 32-เจเฉเจจเจฒ เจฐเฉฐเจ เจเจฟเฉฑเจคเจฐเฅค
เจเฉฐเจฎ เจฒเจ, เจ
เจธเฉเจ เจเจฟเฉฑเจคเจฐเจพเจ - torchvision เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ PyTorch เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจชเฉเจเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค
เจ เจธเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจฆเจฎเจพเจ เจจเฉเฉฐ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจเจฐเจพเจเจเฉ:
- เจธเจฟเจเจฒเจพเจ เจ เจคเฉ เจเฉเจธเจ เจกเฉเจเจพ เจธเฉเฉฑเจเจพเจ เจจเฉเฉฐ เจฒเฉเจก เจเจฐเจจเจพ เจ เจคเฉ เจธเจงเจพเจฐเจฃ เจเจฐเจจเจพ
- เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจชเจฐเจฟเจญเจพเจธเจผเจพ
- เจธเจฟเจเจฒเจพเจ เจกเจพเจเจพ 'เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจธเจฟเจเจฒเจพเจ
- เจเฉเจธเจ เจกเจพเจเจพ 'เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจเฉเจธเจเจฟเฉฐเจ
- เจเจฒเฉ GPU เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจฟเจเจฒเจพเจ เจ เจคเฉ เจเฉเจธเจเจฟเฉฐเจ เจจเฉเฉฐ เจฆเฉเจนเจฐเจพเจเจเจฆเฉ เจนเจพเจ
เจ เจธเฉเจ เจเฉเจชเฉเจเจฐ เจจเฉเจเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจธเจพเจฐเฉ เจเฉเจก เจจเฉเฉฐ เจเจฒเจพเจตเจพเจเจเฉเฅค
CIFAR10 เจจเฉเฉฐ เจฒเฉเจก เจเจฐเจจเจพ เจ เจคเฉ เจเจฎ เจเจฐเจจเจพ
เจเฉเจชเฉเจเจฐ เจตเจฟเฉฑเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเฉเจก เจจเฉเฉฐ เจเจพเจชเฉ เจเจฐเฉ เจ เจคเฉ เจเจฒเจพเจ:
import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
testset = torchvision.datasets.CIFAR10(root='./data', train=False,
download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
shuffle=False, num_workers=2)
classes = ('plane', 'car', 'bird', 'cat',
'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
เจเจตเจพเจฌ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
Extracting ./data/cifar-10-python.tar.gz to ./data
Files already downloaded and verified
เจเจ เจเฉเจธเจเจฟเฉฐเจ เจฒเจ เจเจ เจธเจฟเจเจฒเจพเจ เจเจฟเฉฑเจคเจฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเฉเจ:
import matplotlib.pyplot as plt
import numpy as np
# functions to show an image
def imshow(img):
img = img / 2 + 0.5 # unnormalize
npimg = img.numpy()
plt.imshow(np.transpose(npimg, (1, 2, 0)))
plt.show()
# get some random training images
dataiter = iter(trainloader)
images, labels = dataiter.next()
# show images
imshow(torchvision.utils.make_grid(images))
# print labels
print(' '.join('%5s' % classes[labels[j]] for j in range(4)))
เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจชเจฐเจฟเจญเจพเจธเจผเจพ
เจเจ เจชเจนเจฟเจฒเจพเจ เจตเจฟเจเจพเจฐ เจเจฐเฉเจ เจเจฟ เจเจฟเฉฑเจคเจฐ เจชเจเจพเจฃ เจฒเจ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค เจเจน เจเฉฑเจ เจธเจงเจพเจฐเจจ เจชเฉเจเจเฉฐเจ-เจเฉ-เจชเฉเจเจเฉฐเจ เจจเฉเฉฑเจเจตเจฐเจ เจนเฉเฅค เจเจน เจเจจเจชเฉเจ เจกเฉเจเจพ เจฒเฉเจเจฆเจพ เจนเฉ, เจเจธเจจเฉเฉฐ เจเฉฑเจ-เจเฉฑเจ เจเจฐเจเฉ เจเจ เจฒเฉเจ เจฐเจพเจ เจตเจฟเฉฑเจเฉเจ เจฒเฉฐเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจซเจฟเจฐ เจ เฉฐเจค เจตเจฟเฉฑเจ เจเจเจเจชเฉเฉฑเจ เจกเฉเจเจพ เจชเฉเจฆเจพ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจ เจธเจพเจกเฉ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจฎเจพเจจ เจจเฉเจเจตเจฐเจ เจฌเจฃเจพเจเจ:
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
net = Net()
เจ เจธเฉเจ เจเฉฑเจ เจจเฉเจเจธเจพเจจ เจซเฉฐเจเจธเจผเจจ เจ เจคเฉ เจเฉฑเจ เจเจชเจเฉเจฎเจพเจเจเจผเจฐ เจจเฉเฉฐ เจตเฉ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ
import torch.optim as optim
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
เจธเจฟเจเจฒเจพเจ เจกเจพเจเจพ 'เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจธเจฟเจเจฒเจพเจ
เจเจ เจเจชเจฃเฉ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเฉเจฃเจพ เจธเจผเฉเจฐเฉ เจเจฐเฉเจเฅค เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจจเฉเจ เจเจฐเฉ เจเจฟ เจเจธ เจเฉเจก เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฐเจฎ เจชเฉเจฐเจพ เจนเฉเจฃ เจคเฉฑเจ เจเฉเจ เจธเจฎเจพเจ เจเจกเฉเจ เจเจฐเจจเฉ เจชเจตเฉเจเฉเฅค เจฎเฉเจจเฉเฉฐ 5 เจฎเจฟเฉฐเจ เจฒเฉฑเจ เจเจเฅค เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเฉเจฃ เจฒเจ เจธเจฎเจพเจ เจฒเฉฑเจเจฆเจพ เจนเฉเฅค
for epoch in range(2): # loop over the dataset multiple times
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
# get the inputs; data is a list of [inputs, labels]
inputs, labels = data
# zero the parameter gradients
optimizer.zero_grad()
# forward + backward + optimize
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# print statistics
running_loss += loss.item()
if i % 2000 == 1999: # print every 2000 mini-batches
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 2000))
running_loss = 0.0
print('Finished Training')
เจธเจพเจจเฉเฉฐ เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจจเจคเฉเจเฉ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ เจนเจจ:
เจ
เจธเฉเจ เจเจชเจฃเฉ เจธเจฟเจเจฒเจพเจ เจชเฉเจฐเจพเจชเจค เจฎเจพเจกเจฒ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจเจฐเจฆเฉ เจนเจพเจ:
PATH = './cifar_net.pth'
torch.save(net.state_dict(), PATH)
เจเฉเจธเจ เจกเจพเจเจพ 'เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจเฉเจธเจเจฟเฉฐเจ
เจ เจธเฉเจ เจธเจฟเจเจฒเจพเจ เจกเฉเจเจพ เจฆเฉ เจเฉฑเจ เจธเฉเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเจฟเฉฑเจคเฉเฅค เจชเจฐ เจธเจพเจจเฉเฉฐ เจเจน เจฆเฉเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟ เจเฉ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉ เจเฉเจ เจตเฉ เจธเจฟเฉฑเจเจฟเจ เจนเฉเฅค
เจ
เจธเฉเจ เจเจฒเจพเจธ เจฒเฉเจฌเจฒ เจฆเฉ เจญเจตเจฟเฉฑเจเจฌเจพเจฃเฉ เจเจฐเจเฉ เจเจธเจฆเฉ เจเจพเจเจ เจเจฐเจพเจเจเฉ เจเจฟ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจเจเจเจชเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจน เจฆเฉเจเจฃ เจฒเจ เจเจฟ เจเจน เจธเฉฑเจ เจนเฉ เจเจพเจ เจจเจนเฉเจเฅค เจเฉเจเจฐ เจญเจตเจฟเฉฑเจเจฌเจพเจฃเฉ เจธเจนเฉ เจนเฉ, เจคเจพเจ เจ
เจธเฉเจ เจธเจนเฉ เจชเฉเจฐเจต-เจ
เจจเฉเจฎเจพเจจเจพเจ เจฆเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจจเจฎเฉเจจเจพ เจเฉเฉเจฆเฉ เจนเจพเจเฅค
เจเจ เจเฉเจธเจ เจธเฉเฉฑเจ เจคเฉเจ เจเฉฑเจ เจเจฟเฉฑเจคเจฐ เจฆเจฟเจเจพเจเจเจฆเฉ เจนเจพเจ:
dataiter = iter(testloader)
images, labels = dataiter.next()
# print images
imshow(torchvision.utils.make_grid(images))
print('GroundTruth: ', ' '.join('%5s' % classes[labels[j]] for j in range(4)))
เจเจ เจนเฉเจฃ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจเจน เจฆเฉฑเจธเจฃ เจฒเจ เจเจนเฉเจ เจเจฟ เจเจนเจจเจพเจ เจคเจธเจตเฉเจฐเจพเจ เจตเจฟเฉฑเจ เจเฉ เจนเฉ:
net = Net()
net.load_state_dict(torch.load(PATH))
outputs = net(images)
_, predicted = torch.max(outputs, 1)
print('Predicted: ', ' '.join('%5s' % classes[predicted[j]]
for j in range(4)))
เจจเจคเฉเจเฉ เจฌเจนเฉเจค เจเฉฐเจเฉ เจฒเฉฑเจเจฆเฉ เจนเจจ: เจจเฉเจเจตเจฐเจ เจจเฉ เจเจพเจฐ เจตเจฟเฉฑเจเฉเจ เจคเจฟเฉฐเจจ เจคเจธเจตเฉเจฐเจพเจ เจฆเฉ เจธเจนเฉ เจชเจเจพเจฃ เจเฉเจคเฉ เจนเฉเฅค
เจเจ เจฆเฉเจเฉเจ เจเจฟ เจชเฉเจฐเฉ เจกเฉเจเจพเจธเฉเจ เจตเจฟเฉฑเจ เจจเฉเฉฑเจเจตเจฐเจ เจเจฟเจตเฉเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐเจฆเจพ เจนเฉเฅค
correct = 0
total = 0
with torch.no_grad():
for data in testloader:
images, labels = data
outputs = net(images)
_, predicted = torch.max(outputs.data, 1)
total += labels.size(0)
correct += (predicted == labels).sum().item()
print('Accuracy of the network on the 10000 test images: %d %%' % (
100 * correct / total))
เจเฉฐเจ เจฒเฉฑเจเจฆเจพ เจนเฉ เจเจฟ เจจเฉเฉฑเจเจตเจฐเจ เจเฉเจ เจเจพเจฃเจฆเจพ เจนเฉ เจ
เจคเฉ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเฉเฅค เจเฉเจเจฐ เจเจธเจจเฉ เจเจฒเจพเจธเจพเจ เจจเฉเฉฐ เจฌเฉเจคเจฐเจคเฉเจฌเฉ 'เจคเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเจพ, เจคเจพเจ เจธเจผเฉเฉฑเจงเจคเจพ 10% เจนเฉเจตเฉเจเฉเฅค
เจนเฉเจฃ เจเจ เจฆเฉเจเฉเจ เจเจฟ เจจเฉเฉฑเจเจตเจฐเจ เจเจฟเจนเฉเฉเจเจ เจธเจผเฉเจฐเฉเจฃเฉเจเจ เจฆเฉ เจฌเจฟเจนเจคเจฐ เจชเจเจพเจฃ เจเจฐเจฆเจพ เจนเฉ:
class_correct = list(0. for i in range(10))
class_total = list(0. for i in range(10))
with torch.no_grad():
for data in testloader:
images, labels = data
outputs = net(images)
_, predicted = torch.max(outputs, 1)
c = (predicted == labels).squeeze()
for i in range(4):
label = labels[i]
class_correct[label] += c[i].item()
class_total[label] += 1
for i in range(10):
print('Accuracy of %5s : %2d %%' % (
classes[i], 100 * class_correct[i] / class_total[i]))
เจ
เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจจเฉเจเจตเจฐเจ เจเจพเจฐเจพเจ เจ
เจคเฉ เจเจนเจพเจเจผเจพเจ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจ เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจนเฉ: 71% เจธเจผเฉเฉฑเจงเจคเจพเฅค
เจเจธ เจฒเจ เจจเฉเฉฑเจเจตเจฐเจ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเฉเฅค เจเจ เจนเฉเจฃ เจเจธเจฆเฉ เจเฉฐเจฎ เจจเฉเฉฐ เจเฉเจฐเจพเจซเจฟเจเจธ เจชเฉเจฐเฉเจธเฉเจธเจฐ (GPU) เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจฆเฉเจเจฆเฉ เจนเจพเจ เจเจฟ เจเฉ เจฌเจฆเจฒเจพเจ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค
GPU 'เจคเฉ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ
เจชเจนเจฟเจฒเจพเจ, เจฎเฉเจ เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ เจฆเฉฑเจธเจพเจเจเจพ เจเจฟ CUDA เจเฉ เจนเฉ. CUDA (เจเฉฐเจชเจฟเจเจ เจฏเฉเจจเฉเจซเจพเจเจก เจกเจฟเจตเจพเจเจธ เจเจฐเจเฉเจเฉเจเจเจฐ) เจเฉฑเจ เจธเจฎเจพเจจเจพเจเจคเจฐ เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจชเจฒเฉเจเจซเจพเจฐเจฎ เจนเฉ เจเฉ NVIDIA เจฆเฉเจเจฐเจพ เจเฉเจฐเจพเจซเจฟเจเจธ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจฏเฉเจจเจฟเจเจพเจ (GPUs) 'เจคเฉ เจเจจเจฐเจฒ เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจฒเจ เจตเจฟเจเจธเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค CUDA เจจเจพเจฒ, เจกเจฟเจตเฉเจฒเจชเจฐ GPUs เจฆเฉ เจธเจผเจเจคเฉ เจฆเจพ เจฒเจพเจญ เจเจ เจพ เจเฉ เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจจเจพเจเจเฉ เจขเฉฐเจ เจจเจพเจฒ เจคเฉเจเจผ เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค เจเจน เจชเจฒเฉเจเจซเจพเจฐเจฎ เจธเจพเจกเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจฅเจพเจชเจฟเจค เจนเฉ เจเฉ เจ เจธเฉเจ เจเจฐเฉเจฆเจฟเจ เจนเฉเฅค
เจเจฒเฉ เจชเจนเจฟเจฒเจพเจ เจธเจพเจกเฉ GPU เจจเฉเฉฐ เจชเจนเจฟเจฒเฉ เจฆเจฟเจเจฃเจฏเฉเจ CUDA เจกเจฟเจตเจพเจเจธ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเฉเจเฅค
device = torch . device ( "cuda:0" if torch . cuda . is_available () else "cpu" )
# Assuming that we are on a CUDA machine, this should print a CUDA device:
print ( device )
เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ GPU เจจเฉเฉฐ เจญเฉเจเจฟเจ เจเจพ เจฐเจฟเจนเจพ เจนเฉ:
net.to(device)
เจธเจพเจจเฉเฉฐ GPU เจจเฉเฉฐ เจนเจฐเฉเจ เจชเฉเจพเจ 'เจคเฉ เจเจจเจชเฉเจเจธ เจ เจคเฉ เจเฉเจเฉ เจตเฉ เจญเฉเจเจฃเฉ เจชเฉเจฃเจเฉ:
inputs, labels = data[0].to(device), data[1].to(device)
เจเจฒเฉ GPU 'เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจธเจฟเจเจฒเจพเจ เจฆเฉเจเจ:
import torch.optim as optim
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
for epoch in range(2): # loop over the dataset multiple times
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
# get the inputs; data is a list of [inputs, labels]
inputs, labels = data[0].to(device), data[1].to(device)
# zero the parameter gradients
optimizer.zero_grad()
# forward + backward + optimize
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# print statistics
running_loss += loss.item()
if i % 2000 == 1999: # print every 2000 mini-batches
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 2000))
running_loss = 0.0
print('Finished Training')
เจเจธ เจตเจพเจฐ, เจจเฉเจเจตเจฐเจ เจธเจฟเจเจฒเจพเจ เจฒเจเจญเจ 3 เจฎเจฟเฉฐเจ เจเฉฑเจฒเฉ. เจฏเจพเจฆ เจเจฐเฉเจ เจเจฟ เจเฉฑเจ เจชเจฐเฉฐเจชเจฐเจพเจเจค เจชเฉเจฐเฉเจธเฉเจธเจฐ 'เจคเฉ เจเฉฑเจเฉ เจชเฉเจพเจ 5 เจฎเจฟเฉฐเจ เจคเฉฑเจ เจเฉฑเจฒเจฆเจพ เจธเฉเฅค เจ เฉฐเจคเจฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจจเจนเฉเจ เจนเฉ, เจ เจเจฟเจนเจพ เจเจธ เจฒเจ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฟเจเจเจเจฟ เจธเจพเจกเจพ เจจเฉเฉฑเจเจตเจฐเจ เจเฉฐเจจเจพ เจตเฉฑเจกเจพ เจจเจนเฉเจ เจนเฉเฅค เจธเจฟเจเจฒเจพเจ เจฒเจ เจตเฉฑเจกเฉ เจเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ, GPU เจ เจคเฉ เจเฉฑเจ เจชเจฐเฉฐเจชเจฐเจพเจเจค เจชเฉเจฐเฉเจธเฉเจธเจฐ เจฆเฉ เจเจคเฉ เจตเจฟเฉฑเจ เจ เฉฐเจคเจฐ เจตเจงเฉเจเจพเฅค
เจเจน เจธเจญ เจเฉเจ เจเจพเจชเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ เจเฉ เจเจฐเจจ เจตเจฟเฉฑเจ เจเจพเจฎเจฏเจพเจฌ เจนเฉเจ:
- เจ เจธเฉเจ เจฆเฉเจเจฟเจ เจเจฟ GPU เจเฉ เจนเฉ เจ เจคเฉ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเฉเจฃเจฟเจ เจนเฉ เจเจฟเจธ 'เจคเฉ เจเจน เจธเจฅเจพเจชเจฟเจค เจนเฉ;
- เจ เจธเฉเจ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเจเจตเจฐเจ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉฑเจ เจธเจพเจซเจเจตเฉเจ เจฐ เจตเจพเจคเจพเจตเจฐเจฃ เจธเจฅเจพเจชเจค เจเฉเจคเจพ เจนเฉ;
- เจ เจธเฉเจ เจเจฟเฉฑเจคเจฐ เจชเจเจพเจฃ เจฒเจ เจเฉฑเจ เจจเจฟเจเจฐเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจฌเจฃเจพเจเจ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจธเจฟเจเจฒเจพเจ เจฆเจฟเฉฑเจคเฉ เจนเฉ;
- เจ เจธเฉเจ GPU เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจจเฉเฉฑเจเจตเจฐเจ เจธเจฟเจเจฒเจพเจ เจจเฉเฉฐ เจฆเฉเจนเจฐเจพเจเจ เจ เจคเฉ เจเจคเฉ เจตเจฟเฉฑเจ เจตเจพเจงเจพ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพเฅค
เจฎเฉเจจเฉเฉฐ เจเจฟเฉฑเจชเจฃเฉเจเจ เจตเจฟเฉฑเจ เจธเจตเจพเจฒเจพเจ เจฆเฉ เจเจตเจพเจฌ เจฆเฉเจฃ เจตเจฟเฉฑเจ เจเฉเจธเจผเฉ เจนเฉเจตเฉเจเฉ.
เจธเจฐเฉเจค: www.habr.com