Il modulo tensorflow.nn
fornisce supporto per molte operazioni di base della rete neurale.
Una delle tante funzioni di attivazione è la funzione sigmoidea, che è definito come ,
La funzione sigmoide esce nell`intervallo (0, 1), il che la rende ideale per attività di classificazione binaria in cui è necessario trovare la probabilità che i dati appartengano a una determinata classe. La funzione sigmoide è differenziabile in ogni punto e la sua derivata risulta essere Poiché l`espressione include una funzione sigmoide, il suo valore può essere riutilizzato per accelerare la backpropagation.
La funzione sigmoide soffre del problema dei "gradienti di fuga" poiché si appiattisce su entrambe le estremità, determinando variazioni di peso molto piccole durante la propagazione all`indietro. Ciò può causare il rifiuto della rete neurale di apprendere e bloccarsi. Per questo motivo, l`uso della funzione sigmoidea è sostituito da altre funzioni non lineari, come l`unità lineare rettificata (ReLU).
tf.nn.sigmoid()
[alias tf.sigmoid
] fornisce il supporto della funzione sigmoide in Tensorflow.
Sintassi : tf.nn.sigmoid (x, nome = Nessuno ) o tf.sigmoid (x, nome = Nessuno)
Parametri :
x : un tensore di uno qualsiasi dei seguenti tipi: float16 , float32, float64, complex64 o complex128.
nome (facoltativo): il nome dell`operazione.Tipo restituito : un tensore con lo stesso tipo di quello di x.
Codice n. 1:
# Importa la libreria Tensorflow
import
tensorflow come tf
# Vettore costante di dimensione 6
a
=
tf.constant ([
1.0
3.4
,
-
2.1
-
6.5
], dtype
=
tf.float32 )
# Usando la funzione sigmoid e
b
=
tf.nn.s igmoid (a, nome
=
`sigmoid`
)
# Avvio di una sessione di Tensorflow
con tf.Session() come sess:
print
(
`Tipo di input:`
, a)
print
(
`Input: `
, sess.run (a))
print
(
` Tipo restituito: `
, b)
print
(
`Output:`
, sess.run (b))
Output:
Tipo di input: Tensor ("Const_1: 0", shape = ( 6,), dtype = float32) Input: [1. -0.5 3.4000001 - 2.0999999 0. -6.5] Tipo restituito: Tensor ("sigmoid: 0", shape = (6,), dtype = float32) Output: [0.7310586 0.37754068 0.96770459 0.10909683 0.5 0.00150118]Codice n. 2: Rendering
# Importa la libreria Tensorflow
import
tensorflow as tf
# Importazione della libreria NumPy
import
numpy as np
# Importa funzione matplotlib.pylot
import
matplotlib.pyplot as plt
# Dimensione vettoriale 15 con valori ​​da -5 a 5
a
= < /codice>
# Applicazione della funzione sigmoid e
# salva il risultato in & #39; b '
b
=
tf.nn.sigmoid (a, nome
=
`sigmoid`
)
# Inizia da una sessione di Tensorflow
con tf.Session() come sess:
print
(
`Input:`
, a)
print
(
`Output:`
, sess .run (b))
plt.plot (a, sess.run (b), color
=
`rosso`
, marker
=
"o"
)
plt. title (
"tensorflow.nn.sigmoid"
)
plt.xlabel (
"X"
)
plt.ylabel (
"Y"
)
plt.show ()
Output:
Input: Input: [-cinque. -4,28571429 -3,57142857 -2,85714286 -2,14285714 -1,42857143 -0,71428571 0. 0,71428571 1,42857143 2,14285714 2,85714286 3,57142857 4,28571429 5.] Uscita: [0,00669285 0,01357692 0,02734679 0,05431327 0,10500059 0,19332137 0,32865255 0,5 0,67134745 0,80667863 0,89499941 0,94568673 0,97265321 0,98642308 0,99330715]
< figure class = aligncenter amp-wp-inline-e407ac51e00eb7ad9e758d070160c9d8>