*우분투
GPU사용현황
-nvidia-smi
deb파일 설치 과정
-
home에서 vim .bashrc
-기본적인 환경변수들 지정가능, 우분투 기본 옵션 할당하는 것 인듯?
파일권한변경
-chmod 755 파일명
*파이썬
list합치기
-list1 + list2
FLAG사용하는 이유
-FLAG에 새로운 값 넣으면서 실행가능, 작성시 default값 줄 수 있음
-try, except, else, finally, pass, raise,
몇가지 필요한 습관
-None이 return시 raise를 써서 에러, 주석, 처리해주어야 함(if none:)
-Naming Rule
-파일명은 소문자
-Class은 대문자로 시작
-상수는 올 대문자
-_Private 함수는 _로 시작
-Public함수는 그냥 시작
-하드코딩 금지(최대한 빨간글자 줄이기)
-가능한 요소들은 최대한 클래스화
-모든 함수, 클래스에 정해진 형식의 주석 삽입
-외부 설정파일은 하나로 공유
-중복 코드 금지
-긴 코드 최대한 모듈화
-테스트용 코드는 반드시 분리
-최대한 자주 Git활용
-getter, setter in python(인자 여부로 구분가능)
-Issue Tracking 남기기, 항상 Issue가 생기면 먼저 Trello같은 곳에 남기고, 해결되어도 issue 지우지말고 남겨두기
-모든 python process 종료, pkill -9 python
-pyc만들기, import py_compile 이후 py_compile.compile(file), pyc로 만들 file.py를 입력하면, 실행한 폴더에 __pycache__ 폴더가 새로 생기며 거기에 pyc생김
-//은 몫, %은 나머지, /은 나누기(정수로가 아니라 그냥 나누기 연산, 예를 들면 10/4 = 2.5)
-
*numpy관련
np.array(list, dtype= ) # list 를 np array 클래스로 만듦
np.array[np.array([2,1])] 이렇게 np.array에 np.array를 넣어서(index) 해당 index의 값과 순서를 고려해서 array를 slicing 및 수정 가능
np.array[2:23]으로 slicing도 가능
np.arange(10) # 0부터 시작해 10이전까지 등차가 1인 np array를 출력
np.arange(3, 21, 2) # 3부터 시작해서 등차가 2이고 21이전까지 등차수열 np array를 출력
np.random.permutation(np.array) # np.array를 임의로 섞어 은 np.array를 출력
*Tensorflow
tf.Variable
tf.constant
tf.placeholder
3개의 구분
Variable은 Variable
나머지 둘은 tensor
Variable은 학습하여 얻은 행렬 및 값에 쓰임, 왜냐하면 저장 및 복구가 가능
constant는 w2v.npy불러와서 쓰이듯 고정값으로만 씀
placeholder는 같은 연산, 행위를 반복하되 변수를 바꿔서 넣어야할 때 쓰임, 따라서 입력벡터, 라벨링벡터 등에 쓰임
tf.one_hot(indices, depth, on_value, off_value, axis, dtype, name) # depth길이 만큼의 벡터들로 index에 해당하는 위치에 on_value, 아닌 위치엔 off_value를 넣는 벡터들을 출력
tf.Session() # tensorflow 연산들을 실행하기 위한 클래스
with tf.device(장치명): # 특정 작업을 특정 device에 배치
tf.ConfigProto(...)
device_count = {'GPU' :0} # 지정한 장치(GPU/CPU)의 사용할 최대 개수 정하기
log_device_placement = T/F # 연산이나 텐서가 어떤 device를 쓰는 지 log해줌
gpu_options.allow_growth = T/F # 필요한 만큼만 GPU메모리 할당 하였다가 이후 더 필요하면 증가, 하지만 증가된게 줄어들진 않음
gpu_options.per_process_gpu_memory_fraction = 0~1 # GPU의 메모리의 일정 부분만 할당
allow_soft_placement = T/F # 명시된 device가 없어서 작동안될 시에 tensorflow가 자동으로 존재하는 device중 선택
tf.nn.embedding_lookup
tf.nn.bidirectional_dynamic_rnn
tf.contrib.rnn.BasicLSTMCell
tf.contrib.rnn.DropoutWrapper
tf.contrib.rnn.MultiRNNCell
tf.concat
*git
git clone -b name url
-복사하라(clone), -b(branch하나파서), name란 브랜치로, url의 파일을
git add main.py
-git이 변경사항을 알아처먹을 파일 지정
git status
-내가 수정한 내용들을 알려줌
git config
??
git commit -m "[TST] commit test"
-commit하라, -m(message)를 던지겠다, [xxx]에 대한 규칙은 git.md참고
git push
-git웹사이트에 commit 내용 반영