主要内容,参考http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/

本文使用Theano实现XNOR功能。对tensor的变量定义、自动求导,以及theano.function做一个简单学习。具体如下:

XNOR函数的网络表达:

真值表:

编程实现:

import theano
import theano.tensor as T
import numpy as np
import matplotlib.pyplot as pltif __name__ == '__main__':#Define variables:    x = T.matrix('x')w1 = theano.shared(np.random.rand(2,2)) # weight for layer1w2 = theano.shared(np.random.rand(2))b = theano.shared(np.ones(2)) # biaslearning_rate = 1.;#Step2:Define mathematical expressiona1 = 1/(1+T.exp(-T.dot(x,w1)-b[0]))a = 1/(1+T.exp(-T.dot(a1,w2)-b[1])) # predict output#Step3:Define gradient and update ruley = T.vector('y') #Actual outputcost = -(y*T.log(a) + (1-y)*T.log(1-a)).sum()dw1,dw2,db = T.grad(cost,[w1,w2,b])train = theano.function(inputs = [x,y],outputs = [a,cost],updates = [[w1, w1-learning_rate*dw1],[w2, w2-learning_rate*dw2],[b, b-learning_rate*db]])inputs = [[0, 0],[0, 1],[1, 0],[1, 1]]outputs = [1,0,0,1]#Iterate through all inputs and find outputs:cost = []for iteration in range(1000):pred, cost_iter = train(inputs, outputs)cost.append(cost_iter)#Print the outputs:print 'The outputs of the NN are:'for i in range(len(inputs)):print 'The output for x1=%d | x2=%d is %.2f' % (inputs[i][0],inputs[i][1],pred[i])#Plot the flow of cost:print '\nThe flow of cost during model run is as following:'plt.plot(cost)

实验结果:

The outputs of the NN are:
The output for x1=0 | x2=0 is 1.00
The output for x1=0 | x2=1 is 0.00
The output for x1=1 | x2=0 is 0.00
The output for x1=1 | x2=1 is 1.00

The flow of cost during model run is as following:

同或门(XNOR)电路的网络学习相关推荐

  1. 深度学习(二十三)Maxout网络学习-ICML 2013

    Maxout网络学习 原文地址:http://blog.csdn.net/hjimce/article/details/50414467 作者:hjimce 一.相关理论 本篇博文主要讲解2013年, ...

  2. 计算机电路基础学什么,"计算机电路基础"学习辅导.doc

    "计算机电路基础"学习辅导 "计算机电路基础(1)" 学习辅导 第六章 时序逻辑电路 (一)各种类型的触发器及其特点 触发器是指能够记忆一位二值信号的基本逻辑单元,也是构成各种数字 ...

  3. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  4. python中socket模块常用吗_python网络学习笔记——socket模块使用记录

    此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...

  5. Stay Hungry Stay Foolish——网络学习平台分享

    从1月24号回家也有一阵子了,今天已经是31号,这一个周的中心思想就是一个字,玩. 学生一但远离学校,就会碰到许多学习的阻力,有来自外界的,家里有活要干,有亲戚要访,有同学邀约:也有来自内在的,自由的 ...

  6. 网络学习云平台 计算机基础应用,计算机应用基础网络自主学习平台使用说明.doc...

    <计算机应用基础>课程网络自主学习平台操作说明 插件安装 安装.NET,下载地址: /download/7/0/3/703455EE-A747-4CC8-BD3E-98A615C3AEDB ...

  7. 深度学习(三十二)半监督阶梯网络学习笔记

    半监督阶梯网络学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50877704 作者:hjimce 一.相关理论 这几年深度学习声名鹊起,一 ...

  8. 教育部:到2020年全面普及实名制网络学习空间

    中新网1月25日电 据教育部网站消息,教育部日前印发<关于加强网络学习空间建设与应用的指导意见>.<指导意见>明确了总体目标:到2022年,面向各级各类教育.全体教师和适龄学生 ...

  9. 深度学习笔记(46) 深度卷积网络学习

    深度学习笔记(46) 深度卷积网络学习 1. 学习内容 2. 第一层 3. 第二层 4. 第三层 5. 第四层 6. 第五层 1. 学习内容 深度卷积网络到底在学什么? 来看一个例子,假如训练了一个卷 ...

最新文章

  1. 很用心的写了 9 道 MySQL 面试题
  2. 虚拟机ubuntu启动代码界面_Windows10下使用虚拟机安装Ubuntu18.04
  3. 统计特性和概率估计-2 (数学推导与证明)
  4. 51单片机学习笔记(郭天祥版)(9)——IIC、EEPROM
  5. 阿里云ecs禁止ping,禁止telnet
  6. solr 启动时指定 solr.home
  7. 在PHP中对象真的是按引用传递的吗
  8. DDD Microservices
  9. 在Access数据库中使用SQL查询分析器
  10. Sakai的安装使用
  11. Mysql 数据库操作系统 官网 安装教程
  12. [USACO] Team Tic Tac Toe
  13. vmware中调整ubuntu的磁盘大小
  14. ad16 怎么设置单独元件间距_AD软件中怎么添加不同元素之间的间距规则?
  15. 2019xupt-acm校赛 题解 ( F.猜球球 ) by出题组tongtong
  16. reshape2揉数据
  17. 人工智能算法对发明创造的知识产权保护
  18. xCAT安装配置文档
  19. office2016下载安装
  20. mysql经度纬度类型_在MySQL数据库中存储纬度/经度时使用的理想数据类型是什么?...

热门文章

  1. 违反计算机安全网络,网络信息安全知识:违反国家规定,侵入计算机信息系统,造成危害,情节较重的,处()拘留。...
  2. java数组中包含元素_Java中声明数组时,包括数组的名字、数组中包含的元素的 。 (5.0分)_学小易找答案...
  3. linux系添加路由,Linux添加路由的两种方法
  4. hgame2023 WebMisc
  5. zabbix监控硬件及服务(详解)一
  6. 【专精特新周报】北交所首份2022年半年报出炉;创北交所最快上会记录 天马新材、华岭股份北交所过会...
  7. 存储器块清零c语言版,存储器块清零实验
  8. 面试题CSS02【21-10-14】
  9. windows 7 共享文件夹
  10. 基于SOA 的软件过程管理在中小企业中的应用