Python | Тензор нитей nn.sigmoid ()

| | | | | | | | | | | | | | | |

Модуль tensorflow.nn обеспечивает поддержку многих основных операций нейронной сети.

Одной из многих функций активации является сигмовидная функция, которая определяется как ,

Сигмовидная функция выводит в диапазоне (0, 1), что делает ее идеальной для задачи бинарной классификации, где нам нужно найти вероятность того, что данные принадлежат определенному классу. Сигмоидальная функция дифференцируема в каждой точке, и ее производная оказывается Поскольку выражение включает сигмоидальную функцию, ее значение можно использовать повторно для ускорения обратного распространения.

Сигмовидная функция страдает от проблемы "исчезающих градиентов", поскольку она сглаживается на обоих концах, что приводит к очень небольшим изменениям веса при обратном распространении. Это может привести к тому, что нейронная сеть откажется учиться и застрянет. По этой причине использование сигмовидной функции заменяется другими нелинейными функциями, такими как выпрямленная линейная единица (ReLU).

tf.nn.sigmoid () [псевдоним tf.sigmoid ] обеспечивает поддержку сигмовидной функции в Tensorflow.

Синтаксис : tf.nn.sigmoid (x, name = None ) или tf.sigmoid (x, name = None)

Параметры :
x : тензор любого из следующих типов: float16 , float32, float64, complex64 или complex128.
имя (необязательно): имя операции.

Тип возвращаемого значения : тензор с тем же типом, что и у x.

Код № 1:


# Импорт библиотеки Tensorflow

import tensorflow as tf


# Постоянный вектор размера 6

a = tf.constant ([ 1.0 , - 0.5 , 3.4 , - 2.1 , 0.0 , - 6.5 ], dtype = tf.float32 )


# Использование сигмовидной функции и
# сохранить результат в ' б '

b = tf.nn.s igmoid (a, имя = `sigmoid` )


# Инициирование сеанса Tensorflow
с помощью tf.Session() as sess:

print ( `Тип ввода:` , a)

print ( `Input: ` , sess.run (a))

print ( ` Тип возвращаемого значения: ` , b)

print ( `Вывод:` , sess.run (b))

Вывод:

Тип ввода: Tensor ("Const_1: 0", shape = ( 6,), dtype = float32) Ввод: [1. -0,5 3,4000001 - 2,0999999 0. -6,5] Тип возвращаемого значения: тензор ("сигмоид: 0", shape = (6,), dtype = float32) Вывод: [0,7310586 0,37754068 0,96770459 0,10909683 0,5 0,00150118] 

Код № 2: Рендеринг


# Импорт библиотеки Tensorflow

import tensorflow as tf


# Импорт библиотеки NumPy

import numpy as np


# Импорт функции matplotlib.pylot

import matplotlib.pyplot as plt


# Размер вектора 15 со значениями от -5 до 5

a = < /код> <код кла ss = "plain"> np.linspace ( - 5 , 5 , 15 )


# Применение сигмовидной функции и
# сохранение результата в & № 39; б '

b = tf.nn.sigmoid (a, имя = `sigmoid` )


# Инициировать сеанс Tensorflow
с tf.Session() as sess:

print ( `Input:` , a)

print ( `Вывод:` , sess .run (b))

plt.plot (a, sess.run (b), color = `red` , маркер = "o" )

plt. title ( "tensorflow.nn.sigmoid" )

plt.xlabel ( "X" )

plt.ylabel ( "Y" )


plt.show ()

Вывод:

Ввод: Ввод: [-five. -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.] Выход: [0,01357692 0,02734679 0,00669285 0,05431327 0,10500059 0,19332137 0,32865255 0,67134745 0,80667863 0,5 0,89499941 0,94568673 0,97265321 0,98642308 0,99330715]  <р> < класс фигуры = aligncenter amp-wp-inline-e407ac51e00eb7ad9e758d070160c9d8>