일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해리스 코너 검출
- c언어
- 파이토치 김성훈 교수님 강의 정리
- 파이토치
- c++
- C언어 공부
- 골빈해커
- 케라스 정리
- 팀프로젝트
- Pytorch Lecture
- pytorch zero to all
- 모두의 딥러닝
- 모두의 딥러닝 예제
- TensorFlow
- 영상처리
- 가우시안 필터링
- 파이토치 강의 정리
- c++공부
- 딥러닝
- c언어 정리
- tensorflow 예제
- pytorch
- 김성훈 교수님 PyTorch
- matlab 영상처리
- 딥러닝 스터디
- 미디언 필터링
- object detection
- 컴퓨터 비전
- MFC 프로그래밍
- 딥러닝 공부
- Today
- Total
ComputerVision Jack
[스터디 CNN 예제] 본문
이번 스터디에선 개와 고양이 사진으로 분류기 모델(CNN)을 tensorflow로 만들어 보는 작업을 해보았습니다.
먼저 구글 드라이브에 사용할 자료를 업로드 하였습니다.
우선 이미지 경로로부터 데이터를 얻어오기 위해 작업합니다.
<코드>
def selectImg1(image_path, num):
fname = 'cat.{}.jpg'.format(num)
img_path = os.path.join(image_path, fname)
return img_path
def selectImg2(image_path, num):
fname = 'dog.{}.jpg'.format(num)
img_path = os.path.join(image_path, fname)
return img_path
def preprocess_img(img_path, target_size = 100):
from keras.preprocessing import image
img = image.load_img(img_path, target_size = (target_size, target_size))
img_tensor = image.img_to_array(img)
img_tensor = np.expand_dims(img_tensor, axis = 0)
img_tensor /= 255.
return img_tensor
result = []
label = []
for i in range(1000):
img_path = selectImg1(image_cat, i)
result.append(preprocess_img(img_path))
label.append(0)
for i in range(1000):
img_path = selectImg2(image_dog, i)
result.append(preprocess_img(img_path))
label.append(1)
#이런식으로 함수를 통해 경로에 있는 데이터의 값을 가져왔습니다.
가져올 데이터의 사이즈는 100 x 100사이즈로 설정하였고, 데이터는 train과 test로 각각 나누었습니다.
데이터를 리스트에 append 시키는 방식으로 사용하였기 때문에 list를 array로 변환하는 작업이 필요합니다.
또한 이 과정에서 reshape을 통해 array의 shape도 변경했습니다.
<코드>
result = np.array(result)
label = np.array(label)
result=np.reshape(result,[-1,100,100,3])
label=np.reshape(label,[-1,1])
#라벨값 같은 경우 고양이는 0 개는 1과 같은식으로 변경하여 고양이가 들어올땐 0, 개가 들어오면 1로 빈 공백리스트에 라벨 값을 따로 분류하였습니다.
#다음은 이런식으로 레이어를 구성했습니다.
중간중간 shape을 찍어보는 과정을 통해서 shape에 관해 오류가 발생할 가능성을 미리 방지했습니다.
또한 마지막 L4 레이어 같은 경우 flatten 작업을 거쳐 1열로 모든 데이터를 뽑아냅니다.
<코드>
L4_flat = tf.reshape(L4, [-1, 7 * 7 * 256])
#마지막으로 deep하게 softmax를 적용시켜 모두의 딥러닝때 배운 과정을 적용시키면 됩니다.
'DeepLearning Study > 모두의 딥러닝 예제' 카테고리의 다른 글
[스터디 - RNN 예제] (0) | 2020.05.25 |
---|---|
[스터디 - SoftMax 예제] (0) | 2020.05.07 |
[스터디 - Logistic Regression 예제] (0) | 2020.05.06 |
[스터디 - Linear Regression 예제] (0) | 2020.05.06 |