Explorarea modei-MNIST cu TensorFlow si Keras

Descoperiti puterea retelei neuronale pentru clasificarea imaginilor

Unul dintre cele mai excelente lucruri legate de invatarea profunda este ca te ajuta sa te potrivesti cu relatia x si y si asta iti permite sa faci lucruri magnifice, cum ar fi ca computerele sa examineze o imagine si sa recunoasca sau chiar sa examineze o imagine si iti spune ca este o rochie sau o combinatie de pantaloni.

In aceasta postare pe blog, avem tendinta de a construi o retea neuronala (NN) si de a o antrena cu „Fashion MNIST Dataset”. Setul de date Fashion MNIST este o informatie cu 70.000 de imagini si contine 10 clase de imbracaminte cu o dimensiune de 28 pana la 28 de culori in nuante de culoare a imaginii.

Set de date Fashion MNIST

Puteti explora codul din Google Colab. porno gay teen

Sa trecem la cod si sa incepem doar prin importul bibliotecilor relevante:

import keras



din keras.models import Secvential



din keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropout din keras.optimizers import Adam



import numpy as np



import matplotlib.pyplot as plt

Declaram o variabila numita fashion si o setam la un obiect din setul de date MNIST din modulul Keras:

fashion = keras. tante et neveu porno datasets.fashion_mnist



(train_images, train_labels), (test_images, test_labels) = fashion.load_data ()

Cand creati o retea neuronala, este o idee buna sa utilizati unele date pentru antrenament si o parte din acestea pe care modelul nu le-a vazut inainte pentru a testa performanta retelei dvs. neuronale.

Fiecare imagine este mapata pe o singura eticheta si, deoarece numele claselor nu sunt adaugate cu setul de date MNIST, le vom stoca aici pentru a le utiliza mai tarziu la reprezentarea imaginilor cu matplotlib:

class_names = [‘Tricou / top’, ‘Pantaloni’, ‘Pulover’, ‘Rochie’, ‘Palton’,



‘Sandala’, ‘Camasa’, ‘Sneaker’, ‘Geanta’, ‘Botina’]

Acum, vom examina formatul imaginilor inainte de a incepe antrenamentul retelei neuronale. porno mama

print (train_images.shape)



print (test_images.shape)

Urmatoarea declaratie de imprimare arata ca exista 60.000 de imagini in setul de antrenament si 10.000 de imagini in setul de testare si fiecare imagine are dimensiuni de 28 x 28 pixeli. porno sur netflix

Setul de date MNIST sau orice fel de date trebuie sa fie preprocesate inainte de al alimenta in reteaua neuronala pentru antrenament si, daca trageti prima imagine din setul de antrenament folosind matplotlib, veti vedea ca toate valorile pixelilor se incadreaza intre 0 si 255 :

plt.figure ()



plt.imshow (train_images [0])



plt.colorbar ()



plt.grid (False)



plt. chris bieber porno show ()

Imagine din setul de date MNIST

Acum, trebuie sa normalizam datele inainte de a le furniza modelului, astfel incat reteaua neuronala sa necesite mai putina putere de calcul pentru antrenament. Pentru aceasta, impartim toata imaginea de antrenament si imaginile de testare la 255, astfel incat aceasta sa fie scalata la un interval de la 0 la 1:

train_images = train_images / 255.0



test_images = test_images / 255.0

Trebuie sa confirmati ca setul de date de antrenament este in formatul potrivit si, in acest sens, vom afisa primele 25 de imagini din setul de antrenament din subplotul matplotlib si vom afisa numele fiecarei clase sub fiecare imagine.

plt. porno forcé figure (figsize = (10,10))



pentru i in intervalul (25):



plt.subplot (5,5, i + 1)



plt.xticks ([])



plt.yticks ([])



plt.grid ( Fals)



plt. lahaie porno imshow (train_images [i], cmap = plt.cm.binary)



plt.xlabel (class_names [train_labels [i]])



plt.show ()

Primele 25 de imagini din setul de date MNIST

Cea mai importanta teorie a crearii retelelor neuronale bloc este straturile. free porno français Straturile vor extrage un model din datele care l-au alimentat.

Majoritatea modelelor de retea neuronala contin mai multe straturi care sunt conectate intre ele si cele mai multe dintre ele, cum ar fi tf.keras.layers.Dense, are parametri care sunt invatati in timpul antrenamentului. youtube film porno gratuit

model = keras.Sequential ([



keras.layers.Flatten (input_shape = (28, 28)),



keras.layers. hamster porno french Dense (128, activation = ‘relu’),



keras.



  • nikita bellucci porno
  • aya nakamura porno
  • actrice del porno
  • gyneco porno
  • wakfu porno
  • porno star gay
  • porno 365
  • medecin porno
  • voila porno
  • porno 1900
  • porno hermaphrodite
  • scan porno
  • gaule porno
  • babes porno
  • porno pied
  • porno jeunes gay
  • porno japonnais
  • porno mère et fille
  • rape porno
  • porno old





layers.Dense (10, activation = ‘softmax’ )



])

Primul strat din acest model: tf.keras.layers. porno gyneco Flatten transforma formatul fiecarei imagini intr-o matrice unidimensionala.

Pe pixelii de imagini care au fost aplatizati de stratul Flatten, restul retelei neuronale contine o secventa de doua straturi tf.keras.layers.Dense si asta este ceea ce numim straturi complet conectate. porno sous la douche

Primul strat care este dens are 128 de neuroni, iar al doilea are 10 neuroni.

Puteti utiliza aceasta linie de cod pentru a intelege foarte bine arhitectura propriei retele neuronale:

model.summary ()

Arhitectura retelei neuronale

Inainte de a incepe sa ne rulam retelele neuronale, trebuie sa ne asiguram ca am mai configurat cateva lucruri si primul lucru este:

Functia de pierdere care va detecta cat de precisa este reteaua neuronala in timpul procesului de compilare sau, cu alte cuvinte, modul in care modelul merge bine.

Al doilea este Metrics, care va observa testarea si instruirea in timpul rularii modelului.

Al treilea este Optimizatorul care va face reteaua neuronala sa actualizeze parametrii retelei noastre neuronale in timpul procesului de formare. porno fait maison

model.compile (optimizator = ‘Adam’,



pierdere = ‘sparse_categorical_crossentropy’,



valori = [‘exactitate’])

Antrenarea retelei neuronale artificiale necesita pasii urmatori:

  1. Transmiteti datele de instruire catre model.
  2. Reteaua neuronala artificiala invata sa lege imagini si etichete.
  3. Solicitati retelei neuronale sa faca predictii despre un set de teste

Pentru a incepe procesul de instruire, apelati urmatoarea metoda model.fit:

model. porno hard fit (imagini_tren, etichete_tren, epoci = 10)

Procesul de instruire

Acum, sa testam cum functioneaza reteaua neuronala pe setul de date de test pe care nu l-a mai vazut pana acum:

test_loss, test_acc = model.evaluate (test_images, test_labels) print (‘\ nTest precizie:’, test_acc)

Precizia testului

Acum puteti utiliza modelul pentru a face o predictie asupra oricaror imagini legate de ceea ce am antrenat.

predictii = model.predict (test_images)

Complotati acest lucru pentru a vedea toate seturile de predictii de 10 clase.

def plot_image (i, predictions_array, true_label, img):



predictions_array, true_label, img = predictions_array, true_label [i], img [i]



plt. xmaster porno grid (False)



plt.xticks ([])



plt.yticks ([]) plt .imshow (img, cmap = plt.cm. site porno trans binary) predicted_label = np.argmax (predictions_array)



if predicted_label == true_label:



color = ‘blue’



else:



color = ‘red’ plt.xlabel („{} {: 2.0f }% ({}) „. format (class_names [predicted_label],



100 * np. porno gratuit a telecharger max (predictions_array),



class_names [true_label]),



color = color) def plot_value_array (i, predictions_array, true_label):



predictions_array, true_label = predictions_array, true_label [i]



plt.grid (Fals)



plt.xticks (interval (10))



plt.yticks ([])



thisplot = plt.bar (range (10), predictions_array, color = „# 777777”)



plt. porno bourgeoise ylim ([0, 1])



predicted_label = np.argmax (predictions_array) thisplot [predicted_label] .set_color (‘red’)



thisplot [true_label] .set_color („albastru”)

Ultimul nostru pas in acest mini-proiect este sa trasam diferite imagini cu predictiile lor.

# Trasati primele imagini de testare X, etichetele prezise si etichetele adevarate. porno choc



# Culoare predictii corecte in albastru si predictii incorecte in rosu.



num_rows = 5



num_cols = 3



num_images = num_rows * num_cols



plt.figure (figsize = (2 * 2 * num_cols, 2 * num_rows))



pentru i in interval (num_images):



plt.subplot (num_rows, 2 * num_cols, 2 * i +1)



imagine_plot (i, predictii [i], etichete_test, imagini_test)



plt.subplot (num_rows, 2 * num_cols, 2 * i + 2)



plot_value_array (i, predictii [i], test_labels)



plt. scenes porno tight_layout ()



plt. spectacol()

Rezultatul final