층수 | 종류 | 크기 | 활성화 함수 |
---|---|---|---|
1층 | Flatten | 28*28 | 없음 |
2층 | FNN | 256 | ReLu |
3층 | FNN | 10 | Softmax |
"""
Author : Byunghyun Ban
"""
from tensorflow import keras
import data_reader
# 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
EPOCHS = 20 # 예제 기본값은 20입니다.
# 데이터를 읽어옵니다.
dr = data_reader.DataReader()
# 인공신경망을 제작합니다.
# Flatten함수의 input_shape를 이지디 데이터 크기로 설정
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
# 인공신경망을 컴파일합니다.
model.compile(optimizer='adam', metrics=['accuracy'],
loss='sparse_categorical_crossentropy')
# 인공신경망을 학습시킵니다.
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
validation_data=(dr.test_X, dr.test_Y),
callbacks=[early_stop])
# 학습 결과를 그래프로 출력합니다.
data_reader.draw_graph(history)
층수 | 종류 | 크기 | 활성화 함수 |
---|---|---|---|
1층 | Flatten | 32*32 | 없음 |
2층 | FNN | 256 | ReLu |
3층 | FNN | 10 | Softmax |
"""
Author : Byunghyun Ban
"""
from tensorflow import keras
import data_reader
# 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
EPOCHS = 20 # 예제 기본값은 20입니다.
# 데이터를 읽어옵니다.
dr = data_reader.DataReader()
# 인공신경망을 제작합니다.
model = keras.Sequential([
keras.layers.Flatten(input_shape=(32, 32)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
# 인공신경망을 컴파일합니다.
model.compile(optimizer='adam', metrics=['accuracy'],
loss='sparse_categorical_crossentropy')
# 인공신경망을 학습시킵니다.
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
validation_data=(dr.test_X, dr.test_Y),
callbacks=[early_stop])
# 학습 결과를 그래프로 출력합니다.
data_reader.draw_graph(history)
시각 피질 | 인식형태 |
---|---|
v1 | 선,모서리 |
v2 | 원근감 |
v4 | 기하학적 도형 |
IT | 최종 시각 정보 |
층수 | 종류 | 크기 | 활성화 함수 |
---|---|---|---|
1층 | CNN | 32,(3,3) | - |
- | BatchNorm | - | ReLu |
- | MaxPool | (2,2) | - |
2층 | CNN | 64,(3,3) | - |
- | BatchNorm | - | ReLu |
- | MaxPool | (2,2) | - |
3층 | CNN | 64,(3,3) | - |
- | BatchNorm | - | ReLu |
- | MaxPool | (2,2) | - |
4층 | Flatten | - | - |
5층 | FNN | 128 | ReLu |
- | DropOut | rate=0.5 | - |
6층 | FNN | 10 | SoftMax |
"""
Author : Byunghyun Ban
"""
from tensorflow import keras
import data_reader
# 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
EPOCHS = 20 # 예제 기본값은 20입니다.
# 데이터를 읽어옵니다.
dr = data_reader.DataReader()
# 인공신경망을 제작합니다.
model = keras.Sequential([
keras.layers.Conv2D(32, (3, 3)),
keras.layers.BatchNormalization(),
keras.layers.ReLU(),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(64, (3, 3)),
keras.layers.BatchNormalization(),
keras.layers.ReLU(),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(64, (3, 3)),
keras.layers.BatchNormalization(),
keras.layers.ReLU(),
keras.layers.Flatten(),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dropout(rate=0.5),
keras.layers.Dense(10, activation='softmax')
])
# 인공신경망을 컴파일합니다.
model.compile(optimizer='adam', metrics=['accuracy'],
loss='sparse_categorical_crossentropy')
# 인공신경망을 학습시킵니다.
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
validation_data=(dr.test_X, dr.test_Y),
callbacks=[early_stop])
# 학습 결과를 그래프로 출력합니다.
data_reader.draw_graph(history)