AI 공부하는 도비

대학원생이 AI, NLP등을 공부합니다

전체 글 13

tmux 사용법 정리 - 리눅스 서버 원격 접속 터미널 세션 유지하기

AI 모델을 돌리기 위해 리눅스 서버에서 GPU를 사용하게 되었다. 리눅스 서버 컴퓨터를 직접 사용하는 것이 아니라, 윈도우 컴퓨터에서 원격 접속하여 사용하게 된다. 그러기 위해서는 VSC에서 ssh 연결을 해야 하는데, 이건 다음 글에 정리해보겠다. 리눅스를 원격으로 사용하다보면 연결이 끊어질 때가 있다. 모델을 한번 돌리는데 시간이 만만찮게 걸리는 만큼 이런 상황이 발생해서 터미널이 죽는 것은 피해야 한다. 이렇게 터미널을 닫거나 연결을 끊을 때 명령이 종료되지 않게 해주는 프로그램을 Terminal Multiplexer 프로그램이라고 한다. 여기에는 여러가지 프로그램이 있는데 오늘은 tmux에 대해 알아보겠다. tmux를 사용하면 터미널 창을 분할해서 한꺼번에 실행하기 편하고, 리눅스 서버에 원격 ..

카테고리 없음 2022.07.27

[KG]지식 그래프란 무엇인가? (지식 그래프의 종류)

지식그래프(Knowledge Graph)라는 용어는 Google에서 처음으로 사용했습니다. 그 전까지는 knowledge-base라는 용어로 불리던 것을 구글이 KG라는 용어를 사용하여 2012년부터 개발하기 시작합니다. 웹 검색이나, 전자상거래, 질의응답 분야 등에서 다양하게 활용할 수 있는 지식그래프는 간단하게 말해서 대용량의 지식베이스라고 생각할 수 있습니다. 특정 도메인에서 잘 알려진 개체에 대한 정보를 포함하는 그래프로, RDF 스타일을 사용하여 표현됩니다. 이러한 지식그래프의 개념적 정의를 살펴보고, 어떤 종류가 있는지 보도록 하겠습니다. A Conceptual Definition of Knowledge Graphs '그래프'에 대해서 간단하게 정의하면 다음과 같습니다. “A graph is ..

AI 2022.03.17

Git에 코드 올리는 명령어 간단하게 정리

Git에 올리는 기본 Process $ git clone [master link] $ git remote add [nickname] [master link] --------------------------------------------------- $ git checkout -b [branch-name] //브랜치 생성 $ git add . //업로드 $ git commit -m "commit message" $ git push -u [nickname] [branch-name] GitHub 최신 commit으로 Base 업데이트 $ git fetch upstream master //최신 history 가져오기 $ git rebase upstream/master $ git push --force orig..

코딩 2020.07.20

[Git 명령어] rebase, rewind, reset

Rebase //공식 upstream 저장소에서 최신 commit history 가져오기 $ git fetch upstream master //최신 commit history 기준으로 베이스 갱신(rebase) $ git rebase upstream/master //Fork 한 저장소(GitHub)도 수정하기 (PR은 자동으로 갱신) $ git push --force origin [branch-name] Rewind //수정내역 과거시점으로 되감기 $ git rebase -i --root 편집기에 나오는 내용중 원하는 시점인 commit의 'pick'을 'edit'으로 수정한다. Continue /수정내역 다시 현재시점으로 풀기 $ git rebase --continue *rebase과정 취소하기 $ g..

코딩 2020.07.18

[Git 명령어] branch, commit, stash

브랜치란? 같은 폴더 속 다른세상 *브랜치 생성 : 작업내용을 대표하는 키워드로 branch명을 생성한다. $ git checkout -b [branch-name] *master로 다시 이동 $ git checkout master *브랜치 삭제 $ git checkout master //master 브랜치로 변경 $ git branch -d [branch-name] 현재활동확인하기 *현재 소스파일 상태(status) 확인 $ git status *소스파일 수정한 내용 확인하기 $ git diff 만약 변경된 내용이 없거나 add를 한 뒤라면 아무것도 나오지 않는다 add란? 수정내역(commit)을 만들기 전 준비작업 *add하기 $ git add [파일명] 또는 $ git add . *add명령 취소하..

코딩 2020.07.18

[Git 명령어] Git 설정하기

*GitHub ID/PW 캐시데이터 삭제(삭제시 문제없음) : 다른 GitHub 계정과의 충돌방지 $ git config --global --unset credential.helper $ git config --system --unset credential.helper *차후 commit의 저자(author)정보 $ git config --global user.email "GitHub계정email" $ git config --global user.name "본인영문이름" *commit message를 수정할 기본 편집기 설정 : vim, nano, notepad 등 원하는 편집기로 설정가능 $ git config --global core.editor nano *nano 편집기 사용시 설치 필요 $sudo..

코딩 2020.07.18

[Git 명령어] 프로젝트 읽기

이 글은 Git에 올라와있는 오픈소스 프로젝트들에 대한 코드를 읽는데 도움이 되는 명령어들이다. 어떤 프로젝트이던지 그 구조를 파악하고 어느 개발자가 코드를 작성하였는지를 알면 전체적인 insight에 도움이 된다. *프로젝트 개발의 전체적인 흐름 공식 오픈소스 프로젝트를 upstream으로 두고, 이를 Fork해와서 origin으로 사용한다. Fork는 프로젝트를 내 git저장소로 복사해오는 개념이라고 생각하면 된다. Fork한 저장소를 origin으로 clone해오면 내 로컬저장소에서 프로젝트를 자유롭게 수정할 수 있다. 로컬에서 수정을 마친 뒤 push명령어를 통해 내가 Fork한 저장소, 즉 origin에 업로드할 수 있고, 이를 공식 오픈소스 프로젝트 즉, upstream에 pull-reques..

코딩 2020.07.18

[프로그래머스 lv1] 문자열 가운데 글자 찾기

프로그래머스 레벨1 가운데 글자 가져오기 문제입니다. 문제: 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항: s는 길이가 1 이상, 100이하인 스트링입니다. 언어: C #include #include #include #include char* solution(const char* s) { char* answer = (char*)malloc(2); int len = strlen(s); if(len%2){ //odd int mid = len/2; answer[0] = s[mid]; } else{ //even int mid = len/2-1; answer[0] = s[mid]; answer[1] = s[mid+1]..

코딩 2020.07.11

[프로그래머스 lv1] sql 최댓값 구하기

프로그래머스 레벨1 최댓값 구하기 문제입니다. 사용되는 ANIMAL_INS 테이블은 다음과 같은 column을 가집니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE 문제: 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. 사용언어: SQL SELECT max(DATETIME) FROM ANIMAL_INS; 테이블에서 column의 최댓값, 최솟값을 가져오기 위해서 max(column), m..

코딩 2020.07.11

[프로그래머스 lv1] 문자열 내 문자의 개수 구하기

프로그래머스 레벨1 문자열 내 p와 y의 개수 문제입니다. 문제: 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다. 제한사항: 문자열 s의 길이 : 50 이하의 자연수이고, 문자열 s는 알파벳으로만 이루어져 있습니다. 사용언어: C++ #include #include using namespace std; bool solution(string s)..

코딩 2020.07.11

[프로그래머스 lv1] 버블정렬로 문자열 내림차순

프로그래머스 레벨1 문자열 내림차순으로 배치하기 문제입니다. 문제: 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한사항: str은 길이 1 이상인 문자열 사용언어: C언어 #include #include #include #include char* solution(const char* s) { int length = strlen(s); char* answer = (char*)malloc(length+1); strcpy(answer, s); char tmp = 0; for(int i=0; i

코딩 2020.07.07

[프로그래머스 lv1] 문자열에서 숫자찾기

프로그래머스 레벨1 문자열 다루기 기본 문제입니다. 문제: 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수를 만들어라. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴한다. 제한사항: 매개변수 s는 길이 1 이상, 길이 8 이하인 문자열 사용언어: C언어 #include #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다 bool solution(const char* s) { bool answer = true; int length = strlen(s); if(length == 4 | length == 6) { for(int i=0;i 47 && s[i] < 58) {} else { answer ..

코딩 2020.07.07