import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
import random
fashion = keras.datasets.fashion_mnist
(data_train,labels_train),(data_test,labels_test) = fashion.load_data()
data_train.shape
rnumb = random.randint(0,6000)
plt.imshow(data_train[rnumb])
data_train = data_train/255.0
data_test = data_test/255.0
model = keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(data_train.shape[1],data_train.shape[2])))
model.add(keras.layers.Dense(128,activation='relu'))
model.add(keras.layers.Dense(10,activation = 'softmax'))
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
#model.compile(optimizer=tf.train.AdamOptimizer(),loss='categorical_crossentropy',metrics=['accuracy'])
model.fit(data_train,labels_train,epochs = 10)
model.evaluate(data_test,labels_test)
(data_train,labels_train),(data_test,labels_test) = fashion.load_data()
data_train = data_train.reshape(60000,28,28,1)
data_test = data_test.reshape(10000,28,28,1)
from tensorflow.keras.utils import to_categorical
labels_train = to_categorical(labels_train)
labels_test = to_categorical(labels_test)
print(labels_train.shape)
convmodel = keras.Sequential()
convmodel.add(
keras.layers.Conv2D(filters = 64,
kernel_size= 4,
input_shape=(data_train.shape[1],data_train.shape[2],1),
padding='same' ,
activation='relu')
)
convmodel.add(keras.layers.MaxPooling2D(pool_size=2))
convmodel.add(
keras.layers.Conv2D(filters = 32,
kernel_size= 4,
input_shape=(data_train.shape[1],data_train.shape[2],1),
padding='same' ,
kernel_regularizer = tf.keras.regularizers.l2(0.00001),
activation='relu')
)
convmodel.add(keras.layers.MaxPooling2D(pool_size=2))
convmodel.add(keras.layers.Flatten())
convmodel.add(keras.layers.Dense(10,activation='softmax'))
convmodel.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
convmodel.fit(data_train,labels_train,epochs = 5)
convmodel.evaluate(data_test,labels_test,batch_size=30)