딥러닝 64

CNN으로 MNIST 분류

1. 데이터 전처리 import tensorflow as tf from tensorflow.keras import layers, utils from tensorflow.keras.datasets import mnist num_classes = 10; epochs = 10; batch_size = 100 learning_rate = 0.1; dropout_rate = 0.5 # input image dimensions img_rows, img_cols = 28, 28 # data loading (x_train, y_train), (x_test, y_test) = mnist.load_data() #각차원의 크기를 튜플형태로 반환하는 변수 x_train.shape input_shape = (img_rows, ..

학습된 CNN모델에 직접 사진 test하기

1. 필요 모듈, 함수 구성 import numpy as np from PIL import Image import matplotlib.pyplot as plt # jpg 이미지를 숫자로 def jpg_image_to_array(image_path, size): # open image image = Image.open(image_path) # resize (클수록 선명하지만 느릴 수 있다) image = image.resize((size, size)) # convert to int ndarray im_arr = np.fromstring(image.tobytes(), dtype=np.uint8) # 모양확인 변수 .shape print(im_arr.shape) ''' # 3차원으로 바꾸기 im_arr[n][..

DNN(MLP)으로 MNIST 분류

1. 데이터 전처리 import tensorflow as tf from tensorflow.keras import layers, utils from tensorflow.keras.datasets import mnist # data loading (X_train, y_train), (X_test, y_test) = mnist.load_data() # 60000*(28*28) -> 60000*(784) (28*28 2차원 metrix를 784 1차원으로 바꿈) X_train = X_train.reshape(60000, 784) # float로 바꿈 X_train = X_train.astype('float32') X_test = X_test.reshape(10000,784).astype('float') # d..

DNN(MLP, FFN)으로 iris 구분

1. 데이터 전처리 import numpy as np import pandas as pd import tensorflow as tf from tensorflow.keras import layers # 같은 디렉토리에 iris.csv파일 불러오기 csv = pd.read_csv("iris.csv") # 판다스의 csv모듈 X = csv[["sepal_length", "sepal_width","petal_length","petal_width"]].as_matrix() # 클래스 레이블 (one hot coding용) bclass = {"Iris-virginica":[1,0,0], "Iris-setosa":[0,1,0], "Iris-versicolor":[0,0,1]} y = np.empty((150,3)) ..

DNN을 이용한 회귀분석

1. 파일 읽기 import numpy as np import pandas as pd from pandas import ExcelFile import tensorflow as tf from tensorflow.keras import layers #모듈(변수나 함수를 포함)만 불러오기 from sklearn.preprocessing import StandardScaler, MinMaxScaler #표준 정규화, 최대-최소 정규화 #df = pd.read_excel('File.xlsx', sheetname='Sheet1') #sheet명도 지정할 수 있음 df = pd.read_excel('Real estate valuation data set.xlsx') print(df.columns) *print() :..

keras 함수적 구현

https://keras.io/ko/getting-started/functional-api-guide/ ​ keras를 sequential이 아닌 함수적으로 구현함으로서 모델 내에 input과 output을 조정한다. from keras.layers import Input, Dense from keras.models import Model # input값의 차원을 의미(att의 개수와도 같다) inputs = Input(shape=(784,)) # 레이어 인스턴스는 텐서에 대해 호출 가능하고, 텐서를 반환 x = Dense(64, activation='relu')(inputs) x = Dense(64, activation='relu')(x) predictions = Dense(10, activation=..

케라스(keras) 함수적 api

keras의 계층적 구성은 input을 유연하게 쓰는데(계층별로 다르게 쓰는데) 한계가 있다. 따라서 함수적 api 사용을 통해서 계층별로 필요한 input값을 넣어서 모델을 구성할 수 있다. ​ 다음과 같은 모델을 구성하여 보자. 1. input은 세개 (title,body,tags)가 있다 2. title과 body는 embedding,LSTM의 과정을 거친 후 tags input과 concatenate한다. 3. output layer를 각기다른 2개로 구성하여 priority, department 두개로 만든다. 1. 모델 함수화 from tensorflow.keras import layers from tensorflow import keras ''' input의 구성: (input,output,..

DNN이용하여 thin, normal, fat 분류

1. 데이터 전처리 import numpy as np import pandas as pd import tensorflow as tf from tensorflow.keras import layers #모듈(변수나 함수를 포함)만 불러오기 # BMI 데이터를 읽어 들이고 정규화하기 csv = pd.read_csv("bmi.csv") # 몸무게와 키 데이터(정규화) csv["weight"] /= 100 csv["height"] /= 200 X = csv[["weight", "height"]].as_matrix() print(csv) # 레이블 bclass = {"thin":[1,0,0], "normal":[0,1,0], "fat":[0,0,1]} y = np.empty((20000,3)) # 2000x3 크기..