본문 바로가기

분류 전체보기170

[API] API(Application Programming Interface)와 postman API는 OS가 제공하는 기능을 제어할수있게 만든 인터페이스다. API를 활용하면 동시 개발이 가능하며 그만큼 시간 단축할수있다. RestFul API(Representational State Transfer)는 API에 URI를 부여해 활용하는 방법이며 아래 3가지를 만족하면 REST라고 할수있다. 자원(Resource): URL 주소가 있어야 한다. 행위(Method): 요청하고 응답하는 메소드가 있어야 한다. (GET/POST/DELETE/PUT) 표현(Message): JSON (JavaScript Object Notation), XML등의 표현 # 메소드는 가져오기(GET), 보내기(POST), 삭제하기(DELETE), 업데이트(PUT) 등이 있다. # JSON은 딕셔너리 형태와 큰 따옴표로 표.. 2022. 6. 17.
[딥러닝] ModelCheckpoint 와 CSVLogger 콜백 ModelCheckpoint 콜백을 활용하여 학습을 할때 가장 좋은 모델을 자동으로 저장할수있다. 또한 CSVLogger 콜백을 통해 학습한 결과를 csv로 저장할수 있다. 먼저 해당 라이브러리를 임포트 한다. from tensorflow.keras.callbacks import ModelCheckpoint from tensorflow.keras.callbacks import CSVLogger 그리고 파이썬으로 디렉토리를 만드는 코드를 작성한다. PROJECT_PATH= '.' # 현재 디렉토리, os.chdir로 구글드라이브 경로로 셋팅 if not os.path.exists(PROJECT_PATH + '/checkpoints/' + model_type + '/'): os.makedirs(PROJECT.. 2022. 6. 16.
[딥러닝] Transfer Learning과 Fine Tuning: MobileNetV2 ★ transfer learning으로 이미 잘 만들어진 모델을 가져와서 활용할수 있다. CNN은 베이스와 헤드로 구분되는데 컨볼루션쪽이 베이스, ANN쪽이 헤드다. 이때 헤드를 재외한 베이스 모델을 활용하면 더 높은 성능의 CNN을 만들수있다. MobileNetV2에서 베이스 모델을 가져와서 변수로 저장한다. base_model = tf.keras.applications.MobileNetV2(input_shape= (128, 128, 3), include_top=False) # input_shape 파라미터에 들어가는 데이터의 형태를 입력한다. # include_top 파라미터에 False를 입력하여 헤드를 제외한다. 베이스모델 부분은 사진의 특징을 잡아내는 역할을 하도록 학습 되어있는 상태이다. 그러므로.. 2022. 6. 16.
[딥러닝] 이미지 증강(Augmentation): 이미지 , 넘파이 어레이 ImageDataGenerator함수를 사용하여 이미지 파일을 학습 시킬수있도록 변환할때 현재 가지고 있는 이미지 데이터를 증강처리 하여, 각도, 위치, 크기 등을 조정하여 학습이 더 잘될수 있도록 만든다. from keras_preprocessing.image.image_data_generator import ImageDataGenerator train_datagen = ImageDataGenerator(rescale= 1/255.0, rotation_range=30, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) # rotation_range 로 이미지를 몇도까지 회.. 2022. 6. 15.
[딥러닝] 디렉토리를 따로 만들어서 학습데이터 저장: mkdir, listdir 실무에서 CNN을 학습시킬때 학습할 데이터를 따로 복사해서 저장한다음 학습시킨다고 한다. os.mkdir 사용하여 사진을 저장할 디렉토리를 만들자. tmp에 cats-v-dogs폴더를 만들고 그 안에 training과 testing 폴더를 만든다 또 그 폴더들 안에 각각 cats와 dogs폴더를 만든다. import os try: os.mkdir('/tmp/cats-v-dogs') os.mkdir('/tmp/cats-v-dogs/training') os.mkdir('/tmp/cats-v-dogs/testing') os.mkdir('/tmp/cats-v-dogs/training/cats') os.mkdir('/tmp/cats-v-dogs/training/dogs') os.mkdir('/tmp/cats-v-.. 2022. 6. 15.
[딥러닝] horse-or-human CNN 실습, 압축, 이미지 처리: extractall, ImageDataGenerator, flow_from_directory 이미지 파일을 다운로드하여 말과 사람을 구분하는 CNN을 만들자. # 구글 코랩을 사용했다. 먼저 wget으로 루트 안의 tmp폴더에 말과 사람 사진이 들어있는 압축파일들을 다운로드 한다. !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/horse-or-human.zip \ -O /tmp/horse-or-human.zip !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/validation-horse-or-human.zip \ -O /tmp/validation-hor.. 2022. 6. 15.
[딥러닝] 분류 CNN: Conv2D, MaxPooling2D, Base, Head fashion_mnist 데이터셋으로 사진을 분류하는 CNN을 만들자. fashion_mnist 데이터셋을 불러온다. fashion_mnist = tf.keras.datasets.fashion_mnist (X_train,y_train),(X_test,y_test) = fashion_mnist.load_data() 그 후 피처 스케일링한다. X_train = X_train / 255.0 X_test = X_test / 255.0 학습용과 검증용 X데이터는 3차원으로 이루어져있는데 convolution 작업을 하기위해서는 reshape으로 4차원을 만들어야 한다. X_train = X_train.reshape(60000,28,28,1) X_test = X_test.reshape(10000,28,28,1) #.. 2022. 6. 14.
[딥러닝] CNN (Convolutional Neural Network) 이해 CNN은 ANN과 다르게 사용할 데이터에 열과 행 외에도 색(color)이라는 하나의 차원이 더 있기에 여러 다른 레이어들을 사용하여 데이터를 학습하기 쉬운 형태로 변환시켜야 한다. CNN의 레이어: Input Layer Convolution Layer ReLU Layer Pooling Layer Fully Connected Layer Convolution은 Filter, Kernel 혹은 Feature detector 라고 불린다. input image matrix와 convolution에서 같은 위치에 있는 값을 곱한다. 1x0 + 0x1 + 1x0 + 1x1 + 0x0 + 0x(-1) + 0x0 + 1x1 + 1x0 = 1 + 1 = 2 계산을 마치면 feature map에 결과를 저장하고 한칸 옮.. 2022. 6. 14.