softmaxLayer
Livello softmax
Descrizione
Un livello softmax applica una funzione softmax all’input.
Creazione
Proprietà
proprietà è di sola lettura.
Numero di input al livello, memorizzato come 1. Questo livello accetta solo un input singolo.
Tipi di dati: double
proprietà è di sola lettura.
Nomi di input, memorizzati come {'in'}. Questo livello accetta solo un input singolo.
Tipi di dati: cell
proprietà è di sola lettura.
Numero di output dal livello, memorizzato come 1. Questo livello ha solo un output singolo.
Tipi di dati: double
proprietà è di sola lettura.
Nomi di output, memorizzati come {'out'}. Questo livello ha solo un output singolo.
Tipi di dati: cell
Esempi
Creare un livello softmax con il nome "sm1".
layer = softmaxLayer(Name="sm1")layer =
SoftmaxLayer with properties:
Name: 'sm1'
Includere un livello softmax in un array di Layer.
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,Stride=2)
fullyConnectedLayer(10)
softmaxLayer]layers =
6×1 Layer array with layers:
1 '' Image Input 28×28×1 images with 'zerocenter' normalization
2 '' 2-D Convolution 20 5×5 convolutions with stride [1 1] and padding [0 0 0 0]
3 '' ReLU ReLU
4 '' 2-D Max Pooling 2×2 max pooling with stride [2 2] and padding [0 0 0 0]
5 '' Fully Connected Fully connected layer with output size 10
6 '' Softmax Softmax
Algoritmi
Un livello softmax applica una funzione softmax all’input.
Per i problemi di classificazione, un livello softmax e un seguente livello di classificazione seguono usualmente il livello finale completamente connesso.
La funzione di attivazione dell'unità di output è la funzione softmax:
dove e .
La funzione softmax è la funzione di attivazione dell’unità di output dopo l’ultimo livello completamente connesso per i problemi di classificazione multiclasse:
dove e . Inoltre, , è la probabilità condizionata del campione data la classe r e è la probabilità antecedente della classe.
La funzione softmax è nota anche come l’esponenziale normalizzata e può essere considerata la generalizzazione multiclasse della funzione sigmoidea logistica [1].
La maggior parte dei livelli in un array di livelli o in un grafico a livelli trasferisce i dati ai livelli successivi come oggetti formattati dlarray. Il formato di un oggetto dlarray è una stringa di caratteri in cui ogni carattere descrive la dimensione corrispondente dei dati. Il formato è costituito da uno o più dei seguenti caratteri:
"S": spaziale"C": canale"B": batch"T": tempo"U": non specificato
Ad esempio, è possibile descrivere i dati di immagini bidimensionali che sono rappresentati come un array quadridimensionale, dove le prime due dimensioni corrispondono alle dimensioni spaziali delle immagini, la terza dimensione corrisponde ai canali delle immagini e la quarta dimensione corrisponde alla dimensione del batch come se avessero il formato "SSCB" (spaziale, spaziale, canale, batch).
È possibile interagire con questi oggetti dlarray nei workflow a differenziazione automatica, come quelli per:
lo sviluppo di un livello personalizzato
l'utilizzo di un oggetto
functionLayerl'utilizzo delle funzioni
forwardepredictcon gli oggettidlnetwork
Questa tabella mostra i formati di input supportati per gli oggetti SoftmaxLayer e il corrispondente formato di output. Se il software trasferisce l'output del livello a un livello personalizzato che non eredita dalla classe nnet.layer.Formattable o a un oggetto FunctionLayer con la proprietà Formattable impostata su 0 (false), il livello riceve un oggetto dlarray non formattato le cui dimensioni sono ordinate secondo i formati di questa tabella. I formati qui elencati rappresentano solo un sottoinsieme dei formati supportati dal livello. Il livello potrebbe supportare altri formati, ad esempio formati con ulteriori dimensioni "S" (spaziali) o "U" (non specificate).
| Formato di input | Formato di output |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Negli oggetti dlnetwork, gli oggetti SoftmaxLayer supportano inoltre queste combinazioni di formato input-output.
| Formato di input | Formato di output |
|---|---|
|
|
|
|
|
|
|
|
Riferimenti
[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.
Funzionalità estese
Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.
Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.
Cronologia versioni
Introdotto in R2016a
Vedi anche
trainnet | trainingOptions | dlnetwork | convolution2dLayer | fullyConnectedLayer | exportNetworkToSimulink | Softmax Layer
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)