3주차 과제_숫자 딥러닝

Soomni·2021년 6월 27일
0
import os
os.environ['KAGGLE_USERNAME'] = 'spartasoommni' # username
os.environ['KAGGLE_KEY'] = 'cf783e19878a7a9e8284d2ea28c7517c' # key

!kaggle datasets download -d oddrationale/mnist-in-csv
!unzip mnist-in-csv.zip

from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.optimizers import Adam, SGD
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import OneHotEncoder

train_df = pd.read_csv('mnist_train.csv')
test_df = pd.read_csv('mnist_test.csv')

plt.figure(figsize=(16, 10))
sns.countplot(train_df['label'])
plt.show()

train_df = train_df.astype(np.float32)
x_train = train_df.drop(columns=['label'], axis=1).values
y_train = train_df[['label']].values

test_df = test_df.astype(np.float32)
x_test = test_df.drop(columns=['label'], axis=1).values
y_test = test_df[['label']].values

index = 1
plt.title(str(y_train[index]))
plt.imshow(x_train[index].reshape((28, 28)), cmap='gray')
plt.show()

encoder = OneHotEncoder()
y_train = encoder.fit_transform(y_train).toarray()
y_test = encoder.fit_transform(y_test).toarray()

encoder = OneHotEncoder()
y_train = encoder.fit_transform(y_train).toarray()
y_test = encoder.fit_transform(y_test).toarray()

x_train = x_train / 255.
x_test = x_test / 255.

input = Input(shape=(784,))
hidden = Dense(1024, activation='relu')(input)
hidden = Dense(512, activation='relu')(hidden)
hidden = Dense(256, activation='relu')(hidden)
output = Dense(10, activation='softmax')(hidden)

model = Model(inputs=input, outputs=output)

model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.001), metrics=['acc'])

model.summary()

warnings.filterwarnings(action='ignore')

history = model.fit(
x_train,
y_train,
validation_data=(x_test, y_test),
epochs=20
)

profile
soomni's velog

0개의 댓글

관련 채용 정보