일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 네트워크
- 프로그래머스
- 딥러닝
- PYTHON
- 리눅스
- 그래프
- 동적프로그래밍
- linux
- AI
- 운영체제
- 코딩 테스트
- 코딩테스트
- 순열
- 백준
- google coding competition
- kick start
- CSS
- OS
- 브루트포스
- BFS
- 킥스타트
- dp
- 동적 프로그래밍
- 프로그래밍
- 구글 킥스타트
- DFS
- nlp
- 코딩
- 알고리즘
- 파이썬
- Today
- Total
목록전체 글 (312)
오뚝이개발자
리눅스는 하나의 컴퓨터를 여러 사용자가 사용할 수 있는 멀티유저 OS이다. 따라서 파일에 대한 권한을 관리하는 것이 보안상 중요하다. 특정 파일은 아무나 수정하지 못하게 하거나, 어떤 파일은 누구나 보고 수정할 수 있도록 관리하는 등의 경우가 있을 수 있다. 리눅스 파일, 디렉토리 권한 확인하기 ls -l 명령어를 사용하면 각 파일 및 디렉토리의 권한을 확인할 수 있다. -rwxr-xr-x 1 pi pi 5720 Jul 3 20:06 a.out -rw-r--r-- 1 pi pi 722 Jul 2 21:12 crontab.bak -rw-r--r-- 1 pi pi 52 Jul 2 21:10 test.c 출력 결과는 각각 파일종류 및 권한(퍼미션), 링크수, 사용자(소유자), 그룹, 파일크기, 수정시간, 파일..
케라스 창시자에게 배우는 책의 실습 코드를 작성하고 깃허브에 올려두었다. 바로 아래 책이다. 책의 내용이 아주 좋은 것 같다. 설명이 충분해서 예제 코드들을 이해하고 따라서 실습해보기에 무리가 없다. 나는 해당 책의 코드 실습과 더불어 모델의 정확도를 높이기 위한 다양한 시도들을 개인적으로 해보았다. 간단하게는 층이나 은닉 유닛의 갯수를 조절하는 것에서부터 복잡하게는 optimizer나 loss function을 바꾸고, early stopping과 같은 regularization 기법을 사용하는 것까지 말이다. 깃허브 레포지토리 링크를 여기에 올려두니 책을 공부하며 함께 참고하면 좋을 듯하다. 아래 레포지토리 링크로 깃허브에 접속하면 서로 다른 데이터셋을 사용한 실습 코드들을 볼 수 있다. https:..
Google의 Colab을 사용하다보면 작업을 하다 세션이 강제종료되는 경우가 많다. 공식적으로 밝힌 바에 따르면, 한 세션의 최대 유지 가능 시간은 12시간이지만 90분 이상 아무런 동작이 없는 경우 세션 유지 여부를 묻고 강제로 세션을 회수한다.(그런데 사실 90분보다 훨씬 짧은 것 같은데....) 어쨌든 구글 코랩에서 제공하는 GPU, TPU 같은 가속기는 여러 사람이 공동으로 무료로 사용하기 때문에 이용시간이 상대적으로 적은 사용자에게 우선적으로 할당된다. 오늘은 이러한 구글 코랩의 서비스를 JS 코드를 이용해 세션 강제종료 없이 사용할 수 있는 방법을 알아보려고 한다. 먼저 코랩 페이지에서 F12를 눌러 크롬 개발자 모드를 연다. 그 후 console 탭에서 아래 보면 코드를 입력할 수 있는 곳..
assert assert는 뒤에 오는 조건이 False면 AssertionError를 발생시킨다. >>> a = 3 >>> assert a == 2 #결과 Traceback (most recent call last): File "", line 1, in AssertionError 다음과 같이 assert 조건, "에러문"의 형식으로 사용할 수도 있다. def test(t): assert type(t) is int, '정수 아닌 값이 있네' for i in lists: test(i) #결과 AssertionError: 정수 아닌 값이 있네 즉, assert는 가정설정문이라고 해서 특정 값이나 값의 범위를 보장하기 위해 프로그램 중간중간에 사용한다. 예컨대, 어떤 함수는 정수값만을 input으로 받아야 한다..
문제 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 나의 풀이 양끝에서부터 하나씩 이동시켜가면서 서로 문자를 비교해보면 된다. 왼쪽에서 오른쪽으로 가는 포인터를 l, 오른쪽에서 왼쪽으로 가는 포인터를 r이라고 하자.(two pointer 방식) l = 0, r = len(a)-1로 초기화 해주고 a[l]과 a[r]을 서로 비교해준다. a[l] == a[r] -> l += 1, r -= 1 a[l] != a[r] -> print("no")하고 break 여기서..
문제 https://www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 나의 풀이 정규표현식을 사용하면 되는 문제이다. 약간 신경써야할 부분은 re의 match()함수가 아니라 fullmatch() 함수를 사용해야 한다는 점이다. match()의 경우 일치하는 부분문자열이 있는 경우 True를 return하지만 문제에서 요구하는 것은 문자열의 처음부터 끝까지 해당 정규표현식의 규칙을 가진 경우를 detection해야 한다. 따라서 fullmatch()..
python text.py라고 파이썬으로 작성된 파일을 실행시키려고 하는데 python3 버전으로 인식이 되도록 하고 싶을 때가 있다. 이럴 땐 alias라는 명령어를 사용하여 설정을 해주면 된다. 사용하는 python 버전 확인 간단히 커맨드 창에 python이라고 치면 된다. > python Python 2.7.17 (default, Apr 15 2020, 17:20:14) [GCC 7.5.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 위와 같이 나오면 기본 python 명령어가 python2 버전을 사용한다는 뜻이다. alias 명령어로 python3 버전을 기본 버전으로 설정하기 커맨드 ..
오늘 리뷰할 논문은 구글 리서치팀에서 발표한 "Attention is all you need"(링크)이다. 해당 논문은 현대 NLP의 중요한 backbone으로 사용되는 Transformer에 관한 논문이다. 사실 원논문의 제목보다 Transformer라는 이름으로 더 많이 알려져 있다. NLP model history 그 동안 ML분야에선 vision과 관련된 분야들이 눈에 띄는 발전을 이루어 온 것에 비해 NLP 분야의 발전은 더딘 편이었다. 그러나 최근 들어 좋은 성능을 보이는 다양한 모델들이 나오면서 NLP 분야에서도 급진적인 발전이 이루어지고 있다. 이러한 NLP의 발전을 이끈 모델들의 변천사는 대략 아래와 같다. 오늘 리뷰할 Transformer 논문은 2017년에 발표된 것이다. What d..