基于回声状态网络的油藏计算python库
easyesn的Python项目详细描述
easy esn
"easyesn"是一个使用回声状态网络(esn,也称为"储层计算")的递归神经网络库,具有高度易用的api,紧密面向"sklearn"。它旨在通过提供基于梯度的超参数自动调整(岭回归惩罚、谱半径、泄漏率和反馈比例)以及瞬态时间估计的算法,尽可能容易地利用"esn"。此外,它还集成了使用时空"esn"来预测和分类几何扩展输入信号的能力。
"easyesn"可以使用cpu,也可以使用gpu,这要感谢"cupy"。不过,目前建议使用CPU!
本项目基于luca-thiede基于梯度的超参数优化和瞬态时间估计的研究成果,以及罗兰·齐默尔曼的时空预测和分类技术。
` easyesn'library是使用"python 3"构建的。不能在"python 2.x"环境中使用它。目前推荐的安装"easyesn"的方法是通过"pip"。不过,您也可以在不使用"pip"的情况下自行安装"easyesn"。
它将自动安装"easyesn"及其依赖项。
转到"easyesn"的"pypi"[页面](https://pypi.python.org/pypi/easyesn),下载最新版本作为`*.tar.gz'存档。
2.提取存档。
3.打开命令行/终端和cd,进入包含"setup.py"的目录。
4。执行"python setup.py install"开始安装。
对于每个任务,都有一个专门的模块,例如"分类"用于输入信号的分类,"预测"用于预测或生成(即总是将先前的预测反馈回中,从而提前几步预测),"回归"用于将信号映射到一个实数,或者"时空"用于预测几何扩展的输入信号(例如心脏表面或视频帧上的电激励)。
使用
``python
esn.fit(x_train,y_train,transientTime=100,verbose=1)
````
,并使用
``python
`y_test pred=esn.predict进行预测(x_test,transientTime=100,verbose=1)
```
n_u水库=500,渗漏率=0.2,光谱半径=0.2,回归参数=[1e-2])
````
,山脊回归的惩罚为"1e-2"。要优化超参数,还需要创建一个优化器对象
``python
opt=gradientoptimizer(esn,learningrate=0.001)
`````
``python
``validationloss,fitloss,inputscalings,spectralradius,leakingrates,learningrates=opt.optimizeparameterfortrainerror(inputdatatraining,outputdatatraining,inputdatavalidation,outputdatavalidation,epochs=150,transienttime=100)
validationloss,fitloss,pensions=opt.optimizepension(inputdatatraining,outputdatatraining,inputdatavalidation,outputdatavalidation,epochs=150,transienttime=100)
````
可以在examples目录中找到更广泛的示例。
##后端
正如前面提到的,"easyesn"既可以在cpu上使用,也可以在gpu上使用。为了实现这一点,所有低级计算都外包到后端(类似于"keras"的后端技术)。要将"backend"更改为另一个名为"backendname"的后端,目前有两种方法:
1。修改存储在` ~/.easyesn/easyesn.json`中的设置文件,使其包含如下内容:
``json
{
"backend":"backendname"
}
````
,并在代码中使用"easyesn",而无需进一步修改。
2.将"easyesn_backend"环境变量设置为"backendname",并在代码中使用"easyesn",而无需进一步修改。
这些都是受支持的后端名称:
后端名称后端类型;
;
;
;
/>
文档
#目前"easyesn"库不仅涵盖了储层计算的所有基本特征,而且还涵盖了一些新的、最先进的应用方法。尽管如此,在未来的版本中还有更多的东西需要实现。在下面,这些功能请求和想法一起列出了它们的进展:
-集成ESN(25%)
-添加对深度学习方法的支持作为输出方法(仍然开放)
-改进的GPU计算性能(仍然开放)