DL(Deep-Learning)
[Error] tf.keras.models.load_model 에러 해결방법
학습된 모델을 불러올 경우, model = tf.keras.models.load_model("model.h5") 위와같은 코드를 사용한다. 하지만 AttributeError: 'str' object has no attribute 'decode' 라는 에러가 나는 경우가 있다. h5py가 3 버전일 때에 발생하는 에러이며, 에러를 해결하는 방법으로 h5py를 2버전으로 다운그레이드 해준다. pip install h5py==2.10.0
[TF Hub] 전이학습 Transfer Learning
전이 학습(Transfer Learning)은 미리 훈련된 모델을 다른 작업에 사용하기 위해 추가적인 학습을 시키는 것이다. 이때 훈련된 모델은 데이터에서 유의미한 특징(feature)을 뽑아내기 위한 특징 추출기(Feature Extractor)로 쓰이거나, 모델의 일부를 재학습 시키기도 한다. 가장 많이 쓰이는 컨볼루션 신경망의 전이 학습을 예를 들어보자. 미리 훈련된 컨볼루션 신경망을 불러올 때 가장 마지막의 Dense 레이어를 제외해야 한다. 이미지를 분류하는 컨볼루션 신경망에서 이 Dense 레이어는 소프트맥스 활성화 함수로 실제 분류 작업을 수행하는 레이어이다. 만약 ImageNet 데이터로 학습했다면 이 레이어의 뉴런 수는 ImageNet 문제의 이미지 분류 숫자와 같은 1,000일 것이다...
[TF Hub] 사전 훈련된 모델 사용하기
1. Transfer Learning 이란? 규모가 매우 큰 DNN 모델을 학습 시킬 때 처음부터 새로 학습 시키는 것은 학습 속도가 느린 문제가 있다. 이러한 경우 기존에 학습된 비슷한 DNN모델이 있을 때 이 모델의 하위층(lower layer)을 가져와 재사용하는 것이 학습 속도를 빠르게 할 수 있을 뿐만아니라 학습에 필요한 Training set도 훨씬 적다. 예를 들어, 아래의 그림처럼 CIFAR10 데이터셋을 분류(비행기, 자동차, 새, 고양이, 사슴, 개, 개구리, 말, 배, 트럭의 10개 클래스)하는 모델 A가 이 있다고 하자. 그런 다음, 분류된 CIFAR10 이미지에서 자동차의 종류를 분류하는 모델인 B를 학습시킨다고 할 때, 학습된 모델 A에서의 일부분(lower layer)을 재사용..
[실습] numpy로 만드는 다층 신경망
이번에는 multiple Perceptron을 구현해보자 하나의 은닉계층을 갖는 다층 퍼셉트론 구현하기 📍 은닉층이 하나인 다층 신경망을 만들기 위한 설계도 파란색으로 표시된 새롭게 정의된 함수들에 대해서 살펴보자. 1. 파라미터 초기화 함수 init_model_hidden1() 정의 input_cnt, hidden_cnt, output_cnt를 받아 각 크기에 맞는 입력 계층과 은닉 계층 사이, 은닉 계층과 출력 계층 사이의 파라미터를 생성한다. def init_model_hidden1(): global pm_output, pm_hidden, input_cnt, output_cnt, hidden_cnt pm_hidden = allocate_param_pair([input_cnt,hidden_cnt]) ..