PyTorch - Elaborazione di sequenze con conventi

In questo capitolo, proponiamo un approccio alternativo che si basa invece su una singola rete neurale convoluzionale 2D attraverso entrambe le sequenze. Ogni strato della nostra rete ricodifica i token sorgente sulla base della sequenza di output prodotta finora. Le proprietà simili all'attenzione sono quindi pervasive in tutta la rete.

Qui ci concentreremo su creating the sequential network with specific pooling from the values included in dataset. Questo processo è anche meglio applicato nel "Modulo di riconoscimento delle immagini".

I seguenti passaggi vengono utilizzati per creare un modello di elaborazione di sequenze con conventi utilizzando PyTorch -

Passo 1

Importare i moduli necessari per l'esecuzione dell'elaborazione della sequenza utilizzando conventi.

import keras 
from keras.datasets import mnist 
from keras.models import Sequential 
from keras.layers import Dense, Dropout, Flatten 
from keras.layers import Conv2D, MaxPooling2D 
import numpy as np

Passo 2

Eseguire le operazioni necessarie per creare un modello nella rispettiva sequenza utilizzando il codice seguente:

batch_size = 128 
num_classes = 10 
epochs = 12
# input image dimensions 
img_rows, img_cols = 28, 28
# the data, split between train and test sets 
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(60000,28,28,1) 
x_test = x_test.reshape(10000,28,28,1)
print('x_train shape:', x_train.shape) 
print(x_train.shape[0], 'train samples') 
print(x_test.shape[0], 'test samples')
y_train = keras.utils.to_categorical(y_train, num_classes) 
y_test = keras.utils.to_categorical(y_test, num_classes)

Passaggio 3

Compilare il modello e adattare il modello nel modello di rete neurale convenzionale citato come mostrato di seguito -

model.compile(loss = 
keras.losses.categorical_crossentropy, 
optimizer = keras.optimizers.Adadelta(), metrics = 
['accuracy'])
model.fit(x_train, y_train, 
batch_size = batch_size, epochs = epochs, 
verbose = 1, validation_data = (x_test, y_test)) 
score = model.evaluate(x_test, y_test, verbose = 0) 
print('Test loss:', score[0]) 
print('Test accuracy:', score[1])

L'output generato è il seguente: