思路:

  定义三个训练测试图片0 1 2(16*8),即三个吸引子。然后创建一个Hopfield神经网络,把训练数据输入。然后在用测试数据输入测试结果。

import numpy as np
import neurolab as nl
import matplotlib.pyplot as plt# 0 1 2-----------16*8
target =  np.array([[0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0]])#画图函数
def visualized (data, title): fig, ax = plt.subplots()ax.imshow(data, cmap=plt.cm.gray, interpolation='nearest')ax.set_title(title)plt.show()#显示012
for i in range(len(target)):visualized(np.reshape(target[i], (16,8)), i)# In[2]:#hopfield网络的值是1和-1
target[target == 0] = -1#创建一个hopfield神经网络,吸引子为target(012)
net = nl.net.newhop(target)#定义3个测试数据
test_data1 =np.asfarray([0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0])test_data2 =np.asfarray([0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0])test_data3 =np.asfarray([0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0])#显示测试数据
visualized(np.reshape(test_data1, (16,8)), "test_data1")
visualized(np.reshape(test_data2, (16,8)), "test_data2")
visualized(np.reshape(test_data3, (16,8)), "test_data3")# In[3]:

test_data1[test_data1==0] = -1
#把测试数据输入hopfield网络,得到输出
out1 = net.sim([test_data1])
#判断测试数据的数字是多少
for i in range(len(target)):if((out1 == target[i]).all()):print("test_data is :",i)
#显示输出
visualized(np.reshape(out1, (16,8)), "output1")        test_data2[test_data2==0] = -1
#把测试数据输入hopfield网络,得到输出
out2 = net.sim([test_data2])
#判断测试数据的数字是多少
for i in range(len(target)):if((out2 == target[i]).all()):print("test_data is :",i)
#显示输出
visualized(np.reshape(out2, (16,8)), "output2")        test_data3[test_data3==0] = -1
#把测试数据输入hopfield网络,得到输出
out3 = net.sim([test_data3])
#判断测试数据的数字是多少
for i in range(len(target)):if((out3 == target[i]).all()):print("test_data is :",i)
#显示输出
visualized(np.reshape(out3, (16,8)), "output3") 

转载于:https://www.cnblogs.com/mengqimoli/p/11103733.html

神经网络学习之----Hopfield神经网络(代码实现)相关推荐

  1. 学习使用hopfield神经网络解决TSP问题(毕业设计Day01)

    学习使用hopfield神经网络解决TSP问题(毕业设计Day01) 本篇文章主要是学习 <Hopfield神经网络在TSP问题中的应用_兰兆青>这篇文章,如有侵权,请联系删除. (这系列 ...

  2. 卷积神经网络学习三:神经网络之深度学习与tinny_cnn中的层

    卷积神经网络学习三:神经网络之深度学习 一.神经网络 神经网络是具有适应性的简单单元组成的广泛并行的网络,它的组织能够模拟生物神经系统对真实世界物体作出的交互反应.在机器学习中,神经网络指" ...

  3. Hebb学习规则与Hopfield神经网络

    前言 本文简单介绍了一下Hebb学习规则和Hopfield神经网络,并讨论了二者的特性和意义,以及它们之间的联系.最后代码实现了一个简单Hopfield网络,能够记忆并联想回忆出一张图片. Hebb学 ...

  4. 机器学习入门(14)— 神经网络学习整体流程、误差反向传播代码实现、误差反向传播梯度确认、误差反向传播使用示例

    1. 神经网络学习整体流程 神经网络学习的步骤如下所示. 前提 神经网络中有合适的权重和偏置,调整权重和偏置以便拟合训练数据的过程称为学习.神经网络的学习分为下面 4 个步骤. 步骤1(mini-ba ...

  5. 系统学习机器学习之神经网络(十二) --人工神经网络总结

    本来这篇还缺个RBM,但RBM在DBN中使用,暂时放在深度学习那里.这里看到一篇非常好的总结,保存下来. 转自:http://blog.csdn.net/fengbingchun/article/de ...

  6. 人工智能之Hopfield神经网络(HNN)

    感觉这位大佬说的不错,搬了过来,后面附上原文链接 神经网络在1980年代复兴归功于物理学家约翰·霍普菲尔德(Hopfield).1982年,霍普菲尔德提出了一种新的神经网络,可以解决一大类模式识别问题 ...

  7. 神经网络(BP神经网络、RBF网络、模拟退火算法、HOPFIELD神经网络、Botzmann机)

    神经网络 学习.笔记 神经网络发展 多层前馈神经网络 RBF径向基函数网络 ART自适应谐振理论网络 SOM 自组织映射网络 级联相关网络 Elman网络循环神经网络 Botzmann机(引入较多其他 ...

  8. TSP问题——Hopfield神经网络

    TSP问题--Hopfield神经网络 clear;clc; % hopfield神经网络 % 问题拟定为在网格上随机选取N个点作为城市,然后计算出TSP问题的最优解 %(1)初始化Hopfield神 ...

  9. Hopfield神经网络及其改进

    离散型Hopfield神经网络 J. J. Hopfield 离散Hopfield神经网络模型 网络结构: 离散Hopfield神经网络模型输入输出关系: 网络的稳定性 稳定性定义: 若从某一时刻开始 ...

最新文章

  1. 【web安全】Xss Exploits and Defense翻译4
  2. asp建站系统源码_【服务器安全】windows系统安全注意事项
  3. 论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)
  4. HTML5的设计目的是为了在移动设备上支持多媒体
  5. Java与Web前端发展前景及薪资对比
  6. Navicat 教程:排序、查找或替换记录
  7. GM8284DD(GM8284DR)LVDS转TTL芯片功能汇总及设计注意事项
  8. ajax和jquery教程pdf,ajax和jquery教程pdf
  9. SAXReader解析xml
  10. 学海无涯!java全栈工程师面试题
  11. 【SSDT】SSDT hook技术
  12. C语言求某天是一年里的第几天(详细)
  13. onlyoffice协同编辑(多人共享编辑)、在线文档编辑,支持word、excel
  14. 程序员为程序员推荐:我觉得这本书不错,分享给你
  15. PHP fscanf
  16. 经验模态分解与Python调用实例
  17. http://39.98.219.132 题库标准答案(题库序号:1378)之沙盘游戏
  18. 计算机生成全息投影代码,常见的投影控制代码 汇总 1
  19. 玩转json——json-->txt
  20. Uedit32比较2个文件的内容

热门文章

  1. Application ProvidedAar 完结篇
  2. Android Full-Disk Encryption
  3. Pocket Hacking: NetHunter实战指南
  4. Java中Json和List转换
  5. 手把手教你发行自己的以太坊ERC20 Token 并进行转账
  6. 点击左边tab右侧跟着变化_通过代码判断阿里巴巴国际站右侧P4P产品的位置
  7. 英雄传说服务器维护中,英雄传说:星之轨迹 正统《轨迹》手游无法连接服务器是什么原因...
  8. php调用css类,php – 使用xpath选择css类
  9. cmd imp导入dmp文件_PLSQL Developer导入导出表数据结构
  10. lnmp环境搭建 php7,lnmp环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)