当前位置:网站首页>Fashion classification case based on keras

Fashion classification case based on keras

2022-04-23 17:53:00 Stephen_ Tao

Keras Introduce

Keras It's a use. Python Write an open source neural network library . It can run on TensorFlow,Microsoft Cognitive Toolkit,Theano or PlaidML above .

Introduction to fashion classification dataset

 Insert picture description here
The dataset contains 70000 Gray scale image , Altogether 10 Categories .

Step analysis and code implementation

Reading data sets

from tensorflow.python.keras.datasets import fashion_mnist

class SingleNN(object):
    def __init__(self):
        (self.train,self.train_label),(self.test,self.test_label) = fashion_mnist.load_data()
        self.train = self.train / 255.0
        self.test = self.test / 255.0

Training data , The shape of the test data is as follows :

train: (60000, 28, 28)
train_label: (60000,)
test: (10000, 28, 28)
test_label: (10000,)

model building

Model structure : Double layer neural network

  • Hidden layer are 128 Neurons , Activate function selection relu
  • Full connection layer has 10 Neurons , because fashion_mnist have 10 Categories , Activate function selection softmax
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Flatten,Dense

import tensorflow as tf
tf.compat.v1.disable_eager_execution()

class SingleNN(object):
    model = Sequential([
        Flatten(input_shape=(28,28)),
        Dense(128,activation=tf.nn.relu),
        Dense(10,activation=tf.nn.softmax)
    ])

Compile and define the optimization process

Optimizer selection Adam, The loss function selects the cross entropy loss **( Label data is integer data , It needs to be converted to one-hot code )**

from tensorflow.python.keras.optimizer_v1 import Adam
from tensorflow.python.keras.losses import sparse_categorical_crossentropy

class SingleNN(object):
    def compile(self):
        SingleNN.model.compile(optimizer=Adam(),
        loss=sparse_categorical_crossentropy,
        metrics=['accuracy'])

Define training function

epochs Set to 3 Time ,batch_size Set to 32

class SingleNN(object):
    def fit(self):
        SingleNN.model.fit(self.train,self.train_label,epochs=3,batch_size=32)
        return None

Define the evaluation function

Record the loss function value and accuracy of the test set

class SingleNN(object):
	    def evaluate(self):
        test_loss,test_acc = SingleNN.model.evaluate(self.test,self.test_label)
        print("test_loss:",test_loss)
        print("test_acc:",test_acc)
        return None

Open session diagram

with tf.compat.v1.Session() as sess:
	cnn = SingleNN()
	cnn.compile()
	cnn.fit()
	cnn.evaluate()

Running results

Train on 60000 samples
Epoch 1/3
60000/60000 [==============================] - 5s 81us/sample - loss: 0.4989 - accuracy: 0.8242
Epoch 2/3
60000/60000 [==============================] - 5s 77us/sample - loss: 0.3749 - accuracy: 0.8635
Epoch 3/3
60000/60000 [==============================] - 5s 78us/sample - loss: 0.3373 - accuracy: 0.8766
test_loss: 0.3732113081932068
test_acc: 0.8629

版权声明
本文为[Stephen_ Tao]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230548468731.html