Hopfield网络的设计与实现

反馈神经网络,Hopfield网络,DHNN,Python。
通过Python编程,使用Hebb学习方法计算DHNN的权重参数;
通过Python编程,使用同步方法迭代DHNN,获取最终网络稳定状态

实验步骤
1,导入必要的函数库
2. 设计一个DHNN,激活函数使用符号函数
3. 将两幅灰度图片(1.png和2.png)转换为二值向量作为两个模式保存到DHNN
4. 使用外积法(Hebb学习规则)设计网络的权重参数,
5. 用异步迭代法,计算当输入一个全1向量时,网络的最终输出。
6. 计算当输入图片3.png时,网络的最终输出。
7. 计算当输入图片4.png时,网络的最终输出。

import numpy as np
from PIL import Image
import matplotlib.pyplot as pltimg2=Image.open("1.png")
img2=np.int64(np.array(img2)>127)
vector_train=img2.flatten()img2=Image.open("2.png")
img2=np.int64(np.array(img2)>127)
vector_train2=img2.flatten()attractors=np.array([vector_train,vector_train2])
attractors=attractors*2-1print("保存的模式:\n",attractors)
weight_matrix=np.zeros((len(attractors[0]),len(attractors[0])))for attractor in attractors:temp_matrix=np.zeros((len(attractor),len(attractor)))for i in range(len(attractor)):for j in range(i+1,len(attractor)):temp_matrix[i,j]=attractor[i]*attractor[j]temp_matrix[j,i]=temp_matrix[i,j]weight_matrix+=temp_matrix
print("权重矩阵:\n",weight_matrix)def DHNN(input_vector):vector=input_vector.copy()stable_state=Falserandom_order=np.arange(len(attractors[0]))while not stable_state:np.random.shuffle(random_order)stable_state=Truefor i in random_order:original_value=vector[i]vector[i]=weight_matrix[i].dot(vector)if(vector[i]>=0):vector[i]=1else:vector[i]=-1if(vector[i]!=original_value):print("节点",i,"发生变化",original_value,"->",vector[i])stable_state=Falsereturn vectorimg2=np.ones((66,66))
x=img2.flatten()
r=DHNN(np.array(x))
matrix_test_update=r.reshape(img2.shape)
img=Image.fromarray(np.uint8(matrix_test_update))
img.show()img2=Image.open("3.png")
img2=np.int64(np.array(img2)>127)
x=img2.flatten()
x=x*2-1
r=DHNN(np.array(x))
matrix_test_update=r.reshape(img2.shape)
img=Image.fromarray(np.uint8(matrix_test_update))
img.show()img2=Image.open("4.png")
img2.show()
img2=np.int64(np.array(img2)>127)
x=img2.flatten()
x=x*2-1
r=DHNN(np.array(x))
matrix_test_update=r.reshape(img2.shape)
img=Image.fromarray(np.uint8(matrix_test_update))
img.show()

Hopfield网络的设计与实现相关推荐

  1. Hopfield 网络(下)

    讲的什么 这部分主要讲离散的 Hopfield 网络权值的计算方法,以及网络记忆容量.主要参考了网上搜到的一些相关 PPT. DHNN 的训练方法 常见的学习方法中有海布法,还有 \(\delta\) ...

  2. 系统学习机器学习之神经网络(九) --Hopfield网络

    转自:http://blog.csdn.net/lg1259156776/article/details/47323889 一.前言 经过一段时间的积累,对于神经网络,已经基本掌握了感知器.BP算法及 ...

  3. 非线性规划在计算机中的应用研究,Hopfield网络在非线性规划中的应用研究.pdf

    2000中国技 制与决 策学术年 会论 文 集 Hopfield网络在非线性规划中的应用 陈赞成 王华火 吉国力 (厦门大学 自动化系 361005) 摘 要 叙述了,种反债神经网络及非线性规划中的二 ...

  4. 智能计算之神经网络(Hopfield网络-DHNN,CHNN )介绍

    目录 1. 神经网络受欢迎的原因 2. 人工神经网络定义 3. 人工神经网络的学习能力 4. 人工神经网络的基本原理 5. 神经网络的研究进展 6. 神经网络的典型结构 6.1 单层感知器网络 6.2 ...

  5. linux 远程挂载摄像头_基于Linux的嵌入式网络摄像机设计

    本嵌入式网络摄像机采用高性能ARM9芯片微处理器,内置嵌入式Web服务器. 通过嵌入式多任务操作系统采集摄像机视频数据:采集的视频信号数字化后经MJPEG算法压缩,再通过内部总线送到内置的Web服务器 ...

  6. 什么是离散的Hopfield网络?

    什么是离散的Hopfield网络?

  7. 多层感知机MLP、RBF网络、Hopfield网络、自组织映射神经网络、神经网络算法地图

    多层感知机MLP.RBF网络.Hopfield网络.自组织映射神经网络.神经网络算法地图 目录

  8. android流量监控步骤_Android流量网络监控设计(超级实用版).doc

    Android流量网络监控设计(超级实用版).doc 摘 要 伴随着Android智能移动设备的普及,其对网络系统和流量监控的要求越来越高,因而,让用户有能力实现对移动设备网络流量的实时监控和显示,同 ...

  9. 深度网络的设计与可视化工具

    深度网络的设计与可视化工具 caffe Linux环境的准备 主要是根据 caffe install manual 来进行的.主要库的依赖可以用这个https://github.com/gwli/St ...

最新文章

  1. 【学习笔记】mysql多实例安装
  2. CF1060D Social Circles
  3. mysql命令导入存储过程报错_mysql导入存储过程时declare报错的有关问题解决
  4. scrapy使用笔记
  5. 网络标准之:IANA定义的传输编码
  6. 计算机设计大赛国奖作品_2. 报名材料
  7. python 键盘输入int_Python编程 Python如何获取数据
  8. OpenCV探索之路(零):HighGUI——使用imwrite调整保存的图片质量
  9. Django表中的字段
  10. installshield使用教程
  11. matlab 排序 sorttrows
  12. linux下hex文件到bin文件的格式转化,bin文件转换为hex文件操作步骤解析
  13. python正则匹配日期2019-03-11_正则表达式验证日期(多种日期格式)——转载
  14. 碰撞检测经典解决方案
  15. SEO系列之站内优化
  16. props传值强校验validator
  17. 类风湿性关节炎中的肠-关节轴
  18. c语言 二分查找法 及二分查找法的时间复杂度。
  19. cad指示箭头快捷键命令_CAD箭头引注快捷键是什么?
  20. 开关电源LC滤波器设计

热门文章

  1. php文件上传实验总结,PHP文件上传一些小收获
  2. ubantu 无法打开文件 Failed to execute default File manager
  3. SignalR 实时通讯
  4. 视差特效的原理和实现方法
  5. 【b站雅思笔记】Charlie有好好学习 - 雅思阅读
  6. CoreJava Introduction
  7. k8s基于canel的网络策略
  8. STM32串口调试,调试助手没有打印信息?
  9. 台式计算机检测不到无线网卡,电脑无线网卡不能识别怎么办?电脑安装usb无线网卡图解...
  10. ExoPlayer 播放器开发指南(译)