프로그래밍/IT 이것저것

Google Colab 사용법 정리 - 1.Google Colab

이자다 2023. 8. 5. 02:16
반응형

https://www.youtube.com/watch?v=wb4F1aeZtRA 

위 영상을 시청하고 실습한 결과를 포스팅한다.

 

 

Google Colab 사양 확인

 

 

 

플랫폼 확인

 

입력

import platform 
platform.platform()

결과

Linux-5.15.109+-x86_64-with-glibc2.35

 

 

운영체제 확인

 

입력

!cat /etc/issue.net
#'!'으로 명령 프롬프트에 명령어를 입력
#'cat(concatenate)' 명령어로 파일의 내용 출력
#'/etc/issue.net' 는 리눅스의 배너파일이다. login 이전 줄에 이 파일에 저장된 배너를 출력한다.

결과

Ubuntu 22.04.2 LTS

 

 

CPU 사양 확인

 

입력

!cat /proc/cpuinfo
#리눅스 운영체제에서 탑재된 CPU의 정보는 '/proc/cpuinfo'라는 가상 경로에 저장되어 있다.
#'vender_id'는 intel, amd 등 여러 cpu 브랜드 중 하나가 출력. 클라우드 환경이기에 노트북마다 다름.

결과

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) CPU @ 2.00GHz
stepping	: 3
microcode	: 0xffffffff
cpu MHz		: 2000.200
cache size	: 39424 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat md_clear arch_capabilities
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa mmio_stale_data retbleed
bogomips	: 4000.40
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) CPU @ 2.00GHz
stepping	: 3
microcode	: 0xffffffff
cpu MHz		: 2000.200
cache size	: 39424 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat md_clear arch_capabilities
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa mmio_stale_data retbleed
bogomips	: 4000.40
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

 

 

메모리 사양

 

입력

!cat /proc/meminfo
#메모리의 정보가 저장된 가상경로로 파일을 읽었다.
#"proc"는 "process information"의 줄임말이다. /proc 디렉토리에는 시스템의 여러 가지 정보와 프로세스 관련 데이터를 가상 파일 시스템으로서 제공한다.

결과

MemTotal:       13294252 kB
MemFree:         8681788 kB
MemAvailable:   12219632 kB
Buffers:          335080 kB
Cached:          3393248 kB
SwapCached:            0 kB
Active:           634272 kB
Inactive:        3659844 kB
Active(anon):       1060 kB
Inactive(anon):   566092 kB
Active(file):     633212 kB
Inactive(file):  3093752 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               132 kB
Writeback:             0 kB
AnonPages:        564100 kB
Mapped:           289516 kB
Shmem:              1364 kB
KReclaimable:     103668 kB
Slab:             143188 kB
SReclaimable:     103668 kB
SUnreclaim:        39520 kB
KernelStack:        4480 kB
PageTables:        10508 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6647124 kB
Committed_AS:    2011844 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       73300 kB
VmallocChunk:          0 kB
Percpu:             1320 kB
HardwareCorrupted:     0 kB
AnonHugePages:     18432 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      160568 kB
DirectMap2M:     5079040 kB
DirectMap1G:    10485760 kB

 

 

디스크 사양

 

입력

!df -h
#'df'는 'disk free'의 줄임말이다. 디스크의 사용량, 여유공간을 확인할 수 있다.
#-h 옵션은 human-readable의 줄임말이다. 단위를 인간이 이해하기 쉬운 KB. MB, GB형식으로 출력한다.

결과

Filesystem      Size  Used Avail Use% Mounted on
overlay          79G   25G   54G  32% /
tmpfs            64M     0   64M   0% /dev
shm             5.7G     0  5.7G   0% /dev/shm
/dev/root       2.0G  1.1G  887M  55% /usr/sbin/docker-init
/dev/sda1        80G   51G   29G  65% /opt/bin/.nvidia
tmpfs           6.4G  156K  6.4G   1% /var/colab
tmpfs           6.4G     0  6.4G   0% /proc/acpi
tmpfs           6.4G     0  6.4G   0% /proc/scsi
tmpfs           6.4G     0  6.4G   0% /sys/firmware

 

입력

!df
#이용 가능한 공간과 사용 가능한 공간을 KB 단위로 출력하여 보기 불편하다.

결과

Filesystem     1K-blocks     Used Available Use% Mounted on
overlay         81987992 25551168  56420440  32% /
tmpfs              65536        0     65536   0% /dev
shm              5958656        0   5958656   0% /dev/shm
/dev/root        2003760  1095616    908144  55% /usr/sbin/docker-init
/dev/sda1       83351516 53421104  29914028  65% /opt/bin/.nvidia
tmpfs            6647124      156   6646968   1% /var/colab
tmpfs            6647124        0   6647124   0% /proc/acpi
tmpfs            6647124        0   6647124   0% /proc/scsi
tmpfs            6647124        0   6647124   0% /sys/firmware

 

 

파이썬 버전 확인

 

입력

!python --version

결과

Python 3.10.12

 

 

 

Google Colab 런타임

  • Colab에서 고성능 하드웨어로 GPU나 TPU 사용 가능
  • 런타임 유형 변경(Change runtime type) 필요
    • None: CPU만 사용
    • GPU: 하드웨어 가속으로 GPU 사용
    • TPU: 하드웨어 가속으로 TPU 사용

 

 

Google Colab 상단 목록의 [런타임] -> [런타임 유형 변경]을 통해 런타임 유형 변경이 가능하다

 

입력

!nvidia-smi
#현재 GPU 확인
#GPU를 사용하지 않을 때 - /bin/bash: line 1: nvidia-smi: command not found
#런타임 유형 변경으로 GPU를 사용하면 아래와 같은 결과가 나온다. Tesla T4를 사용중이다.

결과

Fri Aug  4 15:41:21 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.105.17   Driver Version: 525.105.17   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   36C    P8     9W /  70W |      0MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

 

 

 

파일 저장 및 다운로드/업로드

 

 

Jupyter Notebook 환경에서 파일 저장 및 다운로드

 

입력

%lsmagic
#이번 실습에선 매직커맨드를 사용할 예정이라 다양한 매직 커맨드 목록을 조회해본다.
#'ls'는 'list'의 줄임말이다.
#'매직 커맨드(magic command)'는 IPython 인터프리터에 추가된 특수 명령어다.
#alias 등록, 스크립트 실행, 명령어 실행 시간 확인 등의 기능이 있습니다. 매직 커맨드는 명령어 앞에 % 기호를 붙인다.

결과

Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %shell  %store  %sx  %system  %tb  %tensorflow_version  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%bigquery  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%shell  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

 

입력

#셀 단위에서 매직커맨드를 실행할 때는 %%를 사용한다. 
#명령어 아래의 텍스트들을 전부 txt 파일로 만든다
%%writefile NotebookTest.txt
text
test
jupyterNobebok

결과

Writing NotebookTest.txt

 

입력

!cat NotebookTest.txt

결과

text
test
jupyterNobebok

 

입력

from google.colab import files
files.download('NotebookTest.txt')
#Google Colab 에서 내려받고 싶은 파일을 내려받는 명령어

결과: 파일이 컴퓨터 디스크에 다운로드 된다.

 

입력

upload = files.upload()
#Google Colab에 파일 업로드

결과

 

입력

!ls
#파일이 제대로 업로드 되었는지 확인. 업로드한 파일과 writefile 명령어로 만든 txt 파일들이 보인다.

결과

NotebookTest.txt  sample_data

 

 

 

Google Drive 연동

  • Google Colab은 Google Drive와 mount를 통해 쉽게 연동 가능
  • Google Drive에 소스 코드 저장 뿐만 아니라 파일을 열거나 저장 가능

 

입력

from google.colab import drive
drive.mount('/content/drive')
#내 구글 드라이브를 해당 경로로 마운트

결과

Mounted at /content/drive

 

입력

!ls /content/drive
#잘 마운트 되었는지 확인

결과

MyDrive

 

반응형