DHNN

A Discrete Hopfield Neural Network Framework in python.

简介

DHH 一个基于 pythonnumpy 构建的极简 离散 Hopfield 神经网络 框架。DHNN 可以学习模式然后根据复现记忆进而消除噪声。

安装

使用 pip 进行安装:

pip install dhnn

或者下载 dhnn 包到任意位置,使用 setup 进行安装:

python setup.py install

依赖

  • numpy
  • numba

示例——图像复原

Step1

输入一张干净的图片,例如 yosukekatada 微笑照片。

train

Step2

让网络记忆这张图片。

PS:Hopfield 只能处理 2 值序列,因此需要将图片的颜色模式由 RGB 模型转化为二值模型。

Step3

当网络记忆好后,输入一张带有噪声的图片,例如 yosukekatada 带 👀 太阳眼镜的照片,测试一下吧

test

Step4

如下图所示,成功将眼镜去除了。

recovery

他话

说实话,在优化完运行速度后,自己感觉 hopfield network 已经到极限了。

yosuke 图片大小为 (193, 193),调整图片大小为 (100, 100),向量化后为 (10000, 1),训练(记忆)过程中的权重矩阵大小为 (10000, 10000),实际上这对内存负担太大了。

再加上图像复原时 epochs 次对权重矩阵迭代,堆内存负担更大了。

DHNN 中以 numpy.ndarray 作为基础数据结构,对于内存负担同样如此。

权重矩阵实际上是一个稀疏矩阵,应该着眼于此了。

项目主页

https://github.com/Zeroto521/DHNN