분류 전체보기
0807 텍스트 데이터 다루기2 [모든 내용 적용하기]
- 원본 데이터 aclImdb 불러오기 import os imdb_dir = './datasets/aclImdb' train_dir = os.path.join(imdb_dir, 'train') - 원본데이터 전처리하기 # fname[-4:] == ".txt" 이부분은 .txt를 뒤에서부터 -1로 시작해서 -4까지를 뜻함 labels = [] texts = [] for label_type in ['neg', 'pos']: dir_name = os.path.join(train_dir, label_type) for fname in os.listdir(dir_name) : if fname[-4:] == '.txt': f = open(os.path.join(dir_name, fname), encoding = 'u..
0807 17장 RNN [로이터 뉴스 카테고리 분류하기]
tanh... 사용... 여러가지 출력은 softmax거쳐서 분류를 하면 확률값이 나옴 logit -> softmax -> prediction 분류가 있는곳에 target도 있고 서로 minimize distance를 구해줌 순환신경망 - Recurrent Neural Network - 로이터 뉴스 카테고리 분류하기 from keras.datasets import reuters from keras.models import Sequential from keras.layers import Dense, LSTM, Embedding from keras.preprocessing import sequence from keras.utils import np_utils import numpy import tensorf..
0807 6장 텍스트 데이터 다루기 [Embedding층에 사용할 IMDB 데이터 로드하기]
원-핫 인코딩 - 단어수준의 원-핫인코딩 import numpy as np # 초기 데이터 : 각 원소가 샘플 # ( 이 예에서 하나의 샘플이 하나의 문장. 하지만 문장 전체가 될 수 도 있음 ) samples = ['The cat sat on the mat.', 'The dog ate my homework.'] # 데이터에 있는 모든 토큰의 인덱스를 구축 token_index = {} for sample in samples : # split() 메서드를 사용해 샘플을 토큰으로 나눈다. # 실전에서는 구둣점과 특수 문자도 사용 for word in sample.split(): if word not in token_index: # 단어마다 고유한 인덱스 할당 token_index[word] = len(to..
0807 미세조정 fine-tuning
미세조정은 특성추출에 사용했던 동결 모델의 상위 층 몇 개를 동결에서 해제하고 모델에 새로 추가한 층과 함께 훈련하는것. 주어진 문제에 조금 더 밀접하게 재사용 모델의 표현을 일부 조정하기 때문에 미세조정이라고 부름. - 스스로 해보기 컨브넷은 컴퓨터 비전 작업에 가장 뛰어난 머신러닝모델, 아주 작은 데이터 셋에서도 처음부터 훈련해서 괜찮은 성능을 낼 수 있음. 작은 데이터셋에서는 과대적합이 가장 큰 문제!! -> 데이터 증식으로 해결 특성추출 방식으로 새로운 데이터셋에 기존의 컨브넷을 쉽게 재사용 할 수 있음. -> 작은 이미지 데이터셋 작업 효과적. 특성추출을 보완하기위해 미세조정사용 -> 기존 모델에서 사전에 학습한 표현의 일부를 새로운 문제에 적용. 성능 업!
0807 사전훈련된컨브넷사용하기 - VGG16합성곱
- VGG 네트워크 다운받기 from keras.applications import VGG16 conv_base = VGG16(weights = 'imagenet', ## 모델을 초기화할 가중치 체크포인트 지정 include_top = False, ## 최상위 완전 연결 분류기를 포함할지 안할지 input_shape = (150, 150, 3)) ## 이미지 텐서의 크기 - 합성곱 구조 보기 conv_base.summary() - ImageDataGenerator를 사용하여 이미지와 레이블을 넘파이 배열로 추출 - conv_base모델의 predict 메서드를 호출하여 이 이미지에서 특성을 추출 import os import numpy as np from keras.preprocessing.image i..
0806 kaggle 자료 이용해서 컨브넷 훈련하기 - 소규모데이터
https://www.kaggle.com/c/dogs-vs-cats/data에서 자료 내려받기! - 디렉토리 설정하기 import os, shutil original_dataset_dir = './datasets/cats_and_dogs/train' original_dataset_dir - 저장할 디렉터리 공간 만들기 # 소규모 데이터셋을 저장할 디렉터리 base_dir = './datasets/cats_and_dogs_small' os.mkdir(base_dir) # 훈련, 검증, 테스트 분할을 위한 디렉터리 train_dir = os.path.join(base_dir, 'train') os.mkdir(train_dir) validation_dir = os.path.join(base_dir, 'vali..