Если бы мужчина хорошо знал, что такое жизнь, он не давал бы ее так легко (Мария Ролан).

TensorFlow – реализация XOR

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
2 сентября 2019
Как установить TensorFlow на CentOS 7
В этой главе мы узнаем о реализации XOR с использованием TensorFlow. Прежде чем начать с реализации XOR в TensorFlow, давайте посмотрим значения таблицы XOR. Это поможет нам понять процесс шифрования и дешифрования.

AВA XOR B
000
011
101
110

Метод шифрования XOR в основном используется для шифрования данных, которые трудно взломать методом грубой силы, т. е. путем генерации случайных ключей шифрования, которые соответствуют соответствующему ключу.

Концепция реализации с XOR Cipher состоит в том, чтобы определить ключ шифрования XOR и затем выполнить операцию XOR символов в указанной строке с этим ключом, который пользователь пытается зашифровать. Теперь мы сосредоточимся на реализации XOR с использованием TensorFlow, которая упоминается ниже:

 

#Объявление необходимых модулей
import tensorflow as tf
import numpy as np
"""
Простая реализация NumPy 
Схема исключающее или понять алгоритм обратного распространения 
"""

x = tf.placeholder(tf.float64,shape = [4,2],name = "x")
#объявления держатель для входного сигнала х
y = tf.placeholder(tf.float64,shape = [4,1],name = "y")
#объявление заполнителя для желаемого вывода y

m = np.shape(x)[0]#количество примеров обучения
n = np.shape(x)[1]#количество функций
hidden_s = 2 #количество узлов в скрытом слое
l_r = 1#инициализация скорости обучения

theta1 = tf.cast(tf.Variable(tf.random_normal([3,hidden_s]),name = "theta1"),tf.float64)
theta2 = tf.cast(tf.Variable(tf.random_normal([hidden_s+1,1]),name = "theta2"),tf.float64)

#проведение прямого распространения
a1 = tf.concat([np.c_[np.ones(x.shape[0])],x],1)
#весы первого слоя умножаются на вход первого слоя

z1 = tf.matmul(a1,theta1)
#вход второго слоя является выходом первого слоя, пропускается через функцию активации и добавляется столбец смещений

a2 = tf.concat([np.c_[np.ones(x.shape[0])],tf.sigmoid(z1)],1)
#на вход второго слоя умножается на вес

z3 = tf.matmul(a2,theta2)
#выход передается через функцию активации для получения конечной вероятности

h3 = tf.sigmoid(z3)
cost_func = -tf.reduce_sum(y*tf.log(h3)+(1-y)*tf.log(1-h3),axis = 1)

#встроенный оптимизатор тензорного потока, который проводит градиентный спуск с использованием заданной скорости обучения для получения тета-значений

optimiser = tf.train.GradientDescentOptimizer(learning_rate = l_r).minimize(cost_func)

#установка необходимых значений X и Y для выполнения операции XOR
X = [[0,0],[0,1],[1,0],[1,1]]
Y = [[0],[1],[1],[0]]

#инициализация всех переменных, создание сеанса и запуск сеанса tensorflow
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)

#запуск градиентного спуска для каждой итерации и печать гипотезы, полученной с использованием обновленных значений тета

for i in range(100000):
   sess.run(optimiser, feed_dict = {x:X,y:Y}) #установка значений держателя места с помощью feed_dict
   if i%100==0:
      print("Epoch:",i)
      print("Hyp:",sess.run(h3,feed_dict = {x:X,y:Y}))

 

Выше строка кода генерирует вывод, как показано на скриншоте ниже:

TensorFlow - реализация XOR

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 546

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам:

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close