AI-video&image/기본
Mnist Classification
nana7
2020. 2. 24. 23:48
0)파라미터 설정
-LearningRate:0.01
-Epochs:15
-Optimizer=sgd
-BatchSize=32
1)keras에 내장된 mnist데이터를 통해 train, test 데이터 및 라벨을 로드함
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
2)데이터 직접 확인해보기
Train image(25개 뽑아서 확인)

Train label(25개 뽑아서 확인)

3)데이터 셋을 3차원 ->2차원으로 변경
train_images = train_images.reshape(60000, 28 * 28)
test_images = test_images.reshape(10000, 28*28)
4)normalize
train_images = train_images.astype(float)/255.0
test_images = test_images.astype(float)/255.0
5)one hot encoding
train_labels = np_utils.to_categorical( train_labels )
test_labels = np_utils.to_categorical( test_labels )
6)모델 만들기
model = Sequential()
model.add( Dense(units=512, input_dim=28*28, activation="relu"))
model.add( Dense(units=10, activation="softmax"))
7) 모델 학습과정 설정하기
model.compile( loss='categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
learning rate를 하기와 같이 따로 설정할수 있음(하기와 같이 설정 안하면 기본값으로 학습)
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
8)모델학습
hist = model.fit(train_images, train_labels, epochs=epoch_cnt, batch_size=32)
9)Output
loss: 0.1150 - accuracy: 0.9690
