본문 바로가기

분류 전체보기110

삭제된 라인의 git commit 찾기 추가되거나 변경된 코드에 대해서는 git blame으로 commit을 추적할 수 있지만, 어느 순간 삭제되었다면 삭제된 라인의 commit은 보여주지 않기 때문에 당황스럽다. 하지만 git log 에는 수많은 옵션이 있으니 변경(삭제 포함)된 내용에 대한 검색을 할 수 있는 옵션도 있다. -G Look for differences whose patch text contains added/removed lines that match . 무려 정규식도 지원하기 때문에 원하는 정보를 얻기 쉽고, 추가로 파일을 인자로 넘기면 해당 파일을 범위로 지정할 수도 있다. 예시 public int sum(int a, int b) { return a + b; } 위 함수가 지워졌을 때 git log -G 'sum\(' 으.. 2019. 11. 20.
gradle로 spring-boot 프로젝트 설정 gradle로 프로젝트를 생성하고 build.gradle을 아래와 같이 수정한다. buildscript { ext { springBootVersion = '2.2.1.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' sourceCompatibility = 1.8 repositories { mavenCe.. 2019. 11. 19.
Keras로 모델 저장, 불러오기 열심히 학습시킨 모델이 있다면 매번 다시 할 필요 없이 파일로 모델 정보를 저장할 수 있다. 모델 정보란 layer와 파라미터(가중치), 학습에 필요한 optimzer 등이 있다. keras에서는 대용량 데이터에 용이한 hdf5 포맷으로 이를 지원한다. 모델의 네트워크 구성 저장하기 model_json = model.to_json() with open('model.json', 'w') as json_file : json_file.write(model_json) 불러오기 from keras.models import model_from_json with open('model.json', 'r') as file : model_json = file.read() model = model_from_json(mode.. 2019. 11. 16.
Keras로 간단한 CNN 구현하기 Keras로 가장 기본적인 mnist를 CNN(convolutional neural network)으로 구현하는 방법을 알아보자. 데이터 다운로드 (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() keras가 기본으로 mnist 데이터셋을 지원하기 때문에 바로 사용할 수 있다. load_data()는 s3에 있는 mnist 파일을 다운받아 ~/.keras/datasets 폴더에 캐시 한다. 파일은 .npz 포맷으로 되어 있고, x_train, y_train, x_test, y_test 이름의 배열을 읽어서 tuple로 리턴한다. 데이터 전처리 x_train = x_train.reshape(x_train.shape[0], 28,.. 2019. 11. 13.
알파고의 몬테카를로 방법 바둑에서는 한 수를 두었을 때 그 수의 승률을 판단해야 하는데, 이후에 벌어지는 모든 경우의 수를 탐색할 수가 없다. 이럴 때 몬테카를로(Monte Carlo) 방법을 사용한다. 모든 탐색은 못하지만 빠르게 랜덤 탐색을 반복하면서 통계적인 수치를 얻는 방법이다. 몬테카를로 방법 가장 쉬운 예로 $\pi$를 구하는 방법이 있다. 임의의 정사각형에 점을 찍어 원 안에 포함되는지 판단하는 빠른 탐색을 반복하여 통계적인 $\pi$의 값을 알 수 있다. 실행 횟수를 높일수록 실제 $\pi$값과 일치해가는 것을 볼 수 있다. # 총 개수 -> 원 안에 있는 개수 / 총 개수 * 4 10 -> 2.8 100 -> 3.16 1000 -> 3.028 10000 -> 3.1504 100000 -> 3.13844 10000.. 2019. 11. 10.
알파고의 강화학습 앞에 알파고의 원리에 대해서 간단히 썼던 적이 있는데 알파고의 학습은 인간 고수들이 대국했던 기보를 시작으로 한다. 기보를 입력으로 여러 특징을 더 추출한 뒤 CNN으로 학습시켜 SL policy network를 구한다. 이렇게 학습해서 인간과 얼추 비슷하게 다음 수를 예측할 수 있다. 이렇게 구한 SL policy network를 강화 학습하여 더 좋은 수를 예측하는 RL policy network를 구하고, RL policy network로 현재 형세를 판단하는 value network를 구한다. 여기에서는 강화 학습을 통해 얻는 RL policy network와 value network를 어떤 처리를 통해 구하는지 정리한다. RL policy network 미리 구해둔 SL policy networ.. 2019. 11. 3.