일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 화면확대고정
- Lagrange Multiplier
- stepsize
- #python gpu
- 리눅스 비밀번호
- weight histogram
- log파일
- #ubuntu 14.04(LTS)
- Xpad설치
- DenseNet
- twolay
- 학습성공
- Ubuntu동글
- 3D convolution
- Rust설치
- restnet
- tensorboard
- 포트번호 변경
- Git branch 보이기
- #cuda
- canon mf416dw
- VGGNet
- 치환 기능
- Hidden layer output
- #enviroment variable
- #cudnn
- 전체내용
- Ubuntu 설치
- 듀얼부트
- ubuntu 원격
- Today
- Total
목록분류 전체보기 (35)
save the world
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install build-essential libx11-dev sudo apt-get install mesa-vulkan-drivers icd.d 경로에 .json 파일 있는지 확인 cd /usr/share/vulkan/icd.d $ ls intel_icd.x86_64.json lvp_icd.x86_64.json radeon_icd.x86_64.json sudo apt install vulkan-tools sudo apt install libvulkan-dev sudo apt install vulkan-validationlayers-dev spirv-tools vkcube 동작하는지 확인 /usr/b..
10주차 - 제주도 휴가100,000번 iteration으로 학습된 weight (W1~W19)와 bias(B1~B19)를 한번 더 학습시키기 위해 vgg3_retrain.py 파일에 구성하였음. saver = tf.train.Saver() saver.restore(sess, tf.train.latest_checkpoint('./vgg3/3')) print("Model restored.") checkpoint로 마지막 weight 와 bias를 받아와서 재학습. - 재학습 시스템 잘 작동함. Cost func. Euclidean, L1 norm으로 변경시켜보기softmax loss가 아닌 Euclidean, L1 norm을 loss func. 으로 사용하여 cost의 변화를 비교해보면 좋을 것 같다. 왜..
잘못 된 Dataset 활용으로 학습이 제대로 되지 않음. - 7주차에 학습이 된다고 했었던 내용들이 모두 무산되었다. 사용하고있던 이미지 데이터셋에 1번이미지부터 2976번까지가 모두 다른 이미지가 아니고 1번부터 300번까지의 이미지가 같은 이미지였다. 결국 301번과 1번이미지가 같은 이미지였음. 그런데 학습용 이미지로 1번부터 1976번까지 사용하고 테스트용으로 1977부터 2976까지 사용했으니... 학습했던 이미지에 대해서 그대로 테스트를 진행하였던 것이다. 7주차에는 random.crop을 사용하지 않고 가운데 패치만 사용했기 때문에 몇번의 iteration만 돌아도 training때 학습한 이미지를 test 할때 볼 수 있었기 때문에 학습이 잘 되는 것처럼 나온 것이다. VGG19 sing..
회의내용 - 이미지의 패치 하나만 넣고 학습을 할 경우 마지막 w는 모두 0이고 b에서 하나의 값만 1이면 원하는 값이 나온다면 위의 결과처럼 수렴이 가능하므로 w 와 b 를 확인해보았으나 마지막 w와 b는 예상과 다르게 값이 있었다. - 교수님께서 Batch Normalization을 빼라고 하셔서 제거하였다. - skip-connection도 시도해 보자고 하셨다. 학습 성공 - onelayer.py 학습이 되지않았던 가장 큰 이유, 실수는 # -*- coding: utf-8 -*- # Typical setup to include TensorFlow. import tensorflow as tf import os import time import matplotlib.pyplot as plt import..
Training & Code check 학습을 몇번 해봤으나 모든 시도에 대해 한, 두번만의 iteration에서 값이 몇개의 값으로 수렴하였다. 픽셀값(label)이 어떤 값이던 간에 모델의 output을 통해 나온 값은 한정된 수의 숫자였다. 이 정도로 학습이 되지 않으니 코드상에 문제가 있는 것 같아 코드를 확인 할 필요가 있다고 생각하여 Input값으로 Latent 이미지를 넣고 Label 값으로 Latent 이미지의 center pixel 값을 넣어주었다. 이렇게 학습을 시킨다면 W와 B 값이 identity 커널로 학습이 되기만 한다면 100%의 정확도를 보이도록 학습이 되어야 한다고 생각하였다. 아래는 트레이닝 과정에서 출력한 값이다. iter: 89610, stepSize=1e-8, mom..
5주차 - 설연휴 Model Output Channel Tensorflow에서 100 x 100 x 1(grey color)의 input 이미지를 통해 학습되는 3 x 3 크기의 첫번째 커널(W1) 채널 수가 10 이면 W1 = [3, 3, 1, 10] 이다. 이 때 두번째 커널(W2)의 채널 수가 20이면 convolution의 결과가 [row, col, 10, 200] 이 되어야하는 것 아닌가 하는 생각이 들었다. 그러나 W2 커널의 채널수가 20 이면 결과 채널수도 20이 되는데 이유는 이 때 컨볼루션이 3D 컨볼루션이기 때문이다. 그림으로 보자면 아래와 같다. 위 그림에서처럼 채널이 10개짜리인 커널이 채널이 10인 input과 컨볼루션 되므로 출력은 하나의 채널이 된다. 그러나 이런 커널을 이용..
Model Output Check 학습모델의 최종결과인 l5를 확인하기위해 l5를 numpy.array로 받았는데 몇번의 iteration 후 모든 픽셀의 값이 0으로 나왔다. 원인을 찾기위해 weight 값 (커널)을 확인하려고 tensorboard를 사용했다(아래문단).Tensorboard: Weight Histogram 텐서보드에서 첫번째 레이어의 weight값이 한번 학습했을 때 아주 크게 변하는 것을 확인하고 이를 장기적인 측면에서 확인하고자 텐서보드를 사용하여 그래프로 보고싶었다. weight값을 텐서보드로 넘기기 위해서 모든 weight값을 저장하기위해 tf.summary.histogram("w1_summ", w1) 명령어를 사용하고 실행하였더니 InvalidArgumentError: Nan..
l5 layer output 네트워크의 마지막 layer인 l5의 출력이 어떻게 되는지 보기위해서 변수 l5를 numpy.ndarray로 나타내기 위해서 아래의 코드로 수정 _, layerOutput = sess.run([train_op, l5], feed_dict={learning_rate: stepSize, p_keep_conv: 0.8, p_keep_hidden: 0.5}) sess.run() 안에서 train_op를 수행하면서 중간에 거쳐가는 l5 ouput도 numpy.array로 볼 수 있도록 한다. (처음엔 이렇게 하면 "train_op" 와 "l5"가 독립적으로 sess.run()이 되는 줄 알았는데 그렇지 않고 한 번의 sess.run() 안에서 나오는 것 임을 알게되었다. 독립적으로 s..
글을 쓰는 도중 코드가 입력하고 싶을 때을 다운받아 style 폴더와 script 폴더의 모든 내용을 Tistory 홈페이지 관리에서 HTML/CSS 에 모두 업로드 시킨다.이 작업은 한번만 수행하면 된다. (자료출처: https://github.com/gadicc/meteor-SyntaxHighlighter/tree/master/lib/syntaxhighlighter_3.0.83) 새 글을 작성할 때 외부컨텐츠를 눌러 "html(embed,object 소스입력)" 을 선택하고 아래의 코드를 입력하면 된다.보라색 두줄 사이에 코드를 작성하면 되고 초록색 부분에는 원하는 코딩용 언어를 넣는다. 예시1 #include using namespace std; void main(){ cout import tens..
Step Size Step size를 N/2회까지는 alpha로 하고 0.75N까지는 alpha/10로하고 N까지는 alpha/100으로 한다. 이렇게 step size를 유동적으로 만들면 처음에 Stochastic Gradient Descent의 랜덤성으로 인한 효과로 대략적인 수렴구간을 찾게되고 이후 값이 진동하는 것을 막기위해 step size를 줄인다. for j in range(100): for i in range(100): sess.run(train_op, feed_dict={learning_rate: stepSize, p_keep_conv: 0.8, p_keep_hidden: 0.5}) if (i+1)*(j+1) == 10000 / 2: stepSize = 0.1 * stepSize elif..