介绍
EchoTorch是一个基于PyTorch的python模块,用于实现和测试各种各样的Echo状态网络模型。EchoTorch并非用于生产,而是用于研究目的。由于它是基于PyTorch的,EchoTorch的层被设计成集成到深层架构中,以供未来的工作和研究。
推特
目录
This repository consists of:
echotorch.datasets : 常用ESN任务的预构建数据集
echotorch.evaluation : 评估和比较ESN模型的工具和功能(交叉验证、统计测试等)。
echotorch.models
Ready to train models and generic pre-trained ESN models.
准备好训练模型和通用的预训练的ESN模型。
echotorch.nn
All neural network Torch components for ESN and Reservoir Computing.
用于ESN和油藏计算的所有神经网络火炬组件。
echotorch.transforms : Data transformations specific to ESN.
特定于ESN的数据转换
echotorch.utils Tools, functions and measures for ESN and Reservoir Computing.
ESN和油藏计算的工具、功能和措施。
echotorch.utils.conceptors
Utility classes and functions in relation with conceptor neural filters.
与概念神经过滤器相关的实用程序类和函数。
echotorch.utils.matrix_generation
Class to generate different matrices to be used in ESNs.
类生成用于esn的不同矩阵。
echotorch.utils.optimization :
Implementation of classical optimization algorithms for hyperparameters optimization.
超参数优化经典优化算法的实现。
echotorch.utils.visualisation :
Various classes and functions for data and model visualisation.
用于数据和模型可视化的各种类和函数。
经典ESN实例
可以使用nn模块中的ESN或LiESN对象创建ESN
esn = etnn.LiESN(
input_dim,
n_hidden,
output_dim,
spectral_radius,
learning_algo='inv',
leaky_rate=leaky_rate
)
input_dim
is the input dimensionality;为输入维数;
h_hidden
is the size of the reservoir;为水库的大小;
output_dim
is the output dimensionality;为输出维数;
spectral_radius
is the spectral radius with a default value of 0.9;为光谱半径,默认值为0.9;
learning_algo
allows you to choose with training algorithms to use. The possible values are inv, LU and sdg;允许您选择与训练算法使用。可能值为inv、LU和sdg;
给出ESN的输入和输出。
for data in trainloader:
# Inputs and outputs
inputs, targets = data
# To variable
inputs, targets = Variable(inputs), Variable(targets)
训练模型
# Give the example to EchoTorch
esn(inputs, targets)
# end for
完成
给了EchoTorch所有的例子之后,你只需要调用finalize方法。
esn.finalize()
预测
现在模型已经训练好了,您可以调用esn对象来获得预测。
predicted = esn(test_input)