본문 바로가기

전체 글

(16)
TF - eager execution , JIT (@tf.function , jax) 텐서플로우는 기본적으로 static graph 를 구축한다. // tf.session() TF2.0 에서는 eager execution 모드를 지원하는데, 이를 통해 파이썬 처럼 늘여놓고, 그래프를 생성하지 않아도 텐서를 만들고 값을 계산할 수 있게 해준다. 이런 eager execution 은 성능에 영향을 주기 때문에, 일반 연산을 그래프 연산으로 변환할 수 있다. // @tf.function 을 붙인다. @tf.function 은 JIT 컴파일을 지원하여서, 런타임시에 특정코드를 기계어로 번역해준다. XLA(Accelerated Linear Algebra) 기능도 포함한다. XLA = 선형대수학용 컴파일러 - 내부에서 그래프를 최적화함. 여러 연산을 하나의 커널로 만들어 풀이하기 때문에, 이 때문에..
json에 unicode 입력 with open('./~~.json','w') as file : json.dump(JSON_ , file , indent = 4 , ensure_ascii = False ) ensure_ascii = False 를 넣으면 json 파일에 한글이 제대로 출력된다.
Pandas - 문자열이 포함된 행 삭제하기 (0) 문자열이 포함된 행을 기록할 빈 열을 만들기 df['기록해놓을 컬럼'] = np.nan // or "" .. 등등 (1) 문자열 포함된 각 행의 특정 열에 기록해 놓음. df.loc[df['컬럼 이름'].str.contains("찾을문자열"),"기록해놓을 컬럼"] = True (2) 해당 행을 뺀 행의 인덱스 추출 index = df[df['위에서 기록해논 컬럼'] != True].index (3) 해당 행들을 뺌. df = df.drop(index)
VIM 단축키 -- 일반(normal)모드 -- i,a = 현재 부분,(바로 뒷부분)에서 INSERT 모드로 진입 shift + i = 현재 줄 가장 앞에서 입력모드 진입 shift + a = 현재 줄 가장 뒤에서 입력모드 진입 c,w = 현재 단어를 지우면서 입력모드 진입 shift + d = 현재 커서 부터 뒤의 모든 것을 지움 u = 되돌아가기 ctrl + u = 다시 되돌아가기 x = 한 문자 삭제 해당 단어 하이라이팅 하면서~ 동일한 문자 찾기 (위로) = shift + * 동일한 문자 찾기 (아래로) = shift + n ctrl + f = 다음 페이지로 이동 ctrl + b = 이전 페이지로 이동 h,j,k,l = 좌, 아래 , 위, 우 이동 shift + ^ = 현재 라인의 가장 앞으로 이동 shift ..
np.sum 에서의 axis 해석. axis 축 (괄호) 내의 리스트와 element 들에 대해서 zip() 연산을 하듯이 순서쌍으로 묶어서 연산해준다. EX) a = [ [ 1,2,3],[4,5,6] ] 에서 np.sum(a,axis = 0) 이라고 한다면, 1) 0번째 축 내부의 요소들을 파악한다. [[1,2,3] , [4,5,6]] -> [1,2,3] , [4,5,6] 2개의 요소로 이루어져 있다. 2) 해당 요소들에 대해서 zip 한다. [ [1,4] , [2,5] , [3,6] ] 3) zip한 리스트에서 sum 연산을 한다. [5,7,9]
text 인풋 //importing opcode.txt FILE* fp; char opcode_input[81]; char* mod_opinput[3]; fp = fopen(OPCODE,"r"); while(fgets(opcode_input,80,fp)!=NULL){ //tokenize opcode mod_opinput[0]=strtok(opcode_input," \n\t"); mod_opinput[1]=strtok(NULL," \n\t"); mod_opinput[2]=strtok(NULL," \n\t"); //generate new node & initialize Opcode* op_mem = (Opcode*)malloc(sizeof(Opcode)); op_mem->opcodenum = strtol(mod_opinp..
CPU, 어셈블리 언어, 기계어, 어셈블러, 컴파일러, 링커, 로더, 커널 , 쉘 프로그램은 0과 1로 이루어진 "명령어"(기계어) 의 집합이다. -> Object file 이러한 목적파일(기계어로 쓰여진 명령어들)을 하나로 모아서 커널(운영체제에 dependency 가 있음) 과 연결하여 실행파일을 만든다. 이 역할을 링커가 담당한다. 이러한 기계어는 CPU 마다 다르게 정의되어 있어서 dependency 가 존재한다. 프로그램이 메인메모리에 배치되면 프로세스라고 불린다. 기계어는 사람이 이해할 수 있는 저급언어인 어셈블리어(mnemonic)로 표현할 수 있다. 이러한 어셈블리어도 당연히 CPU에 따라서 다르게 정의된다. 어셈블리어를 기계어(opcode)로 번역해주는 역할을 어셈블러가 담당한다. -- CPU 내에 회로로 구현되어 있다. 이러한 dependency를 없애기 위해, C언..
(논문리딩) LTSD : A Low-Shot Transfer Detector for Object Detection , AAAI 2018 - FSOD과 관련한 첫번째 논문 5way-5shot 작업과 같은 일반적인 Few-shot Learning 방식이 아닌, Transfer Learning에 가까움. // Base Class 를 이용해 학습한 뒤, Novel Class 데이터셋 전체에 모델을 적용. 다만 Novel class당 few-shot 이 필요하다는 점에서 FS 의 성격을 지니고 있음. Contribution LSTD 의 유연하고 깊은 아키텍쳐는 low-shot detection 의 전이학습 어려움을 완화시킨다. SSD + Faster RCNN 의 Unified Network few shot detection 을 위한 novel regularized transfer learning framework 제안. 이것은 Transfer K..