使用 nnet_ts 模块中的 TimeSeriesNnet() 方法会抛出 NameError

Using the TimeSeriesNnet() method from the nnet_ts module throws NameError

我正在尝试使用 python 模块 nnet-ts 创建一个神经网络。 它有一个名为 TimeSeriesNnet() 的内置方法,它有两个参数; hidden_layers 和 activation_functions.

请参阅此模块的文档以及 README.md:

中的示例
https://github.com/hawk31/nnet-ts

我是运行python版本2.7.13

nnet-ts 模块依赖于 5 个特定的包,我在下面列出了它们以及我正在使用的当前版本:

numpy-1.13.0、pandas-0.20.2、scipy-0.19.0、theano-0.9.0 和 keras-2.0.5

按照README中的例子(link上面),我的代码如下:

from nnet_ts import *
neural_net = TimeSeriesNnet(hidden_layers = [7, 3], activation_functions = ['tanh', 'tanh'])

执行此代码会导致抛出 NameError。输出:

NameError: name 'TimeSeriesNnet' is not defined

我猜这个错误的原因可能与不同的模块版本有关,因为代码与 README 中给出的示例几乎相同。非常感谢任何帮助。

肯定是你部署的代码有问题。对于您的 Python 开发,我建议始终使用本地 virtual environment。对于这个神经网络时间序列,您可以使用 python setup.py build 命令在本地构建它,它将在 build/lib.linux-x86_64-2.7 目录中构建必要的文件。假设您拥有所有依赖项,应该没有任何问题。在部署中,您只需将 PYTHONPATH 设置到此目录,或者您只需使用 sys.path.insert() 方法在 运行 时间包含此路径。
例如,假设我在 nnet-ts 目录中,我已经构建了 运行 nnet-ts 如下:

    $ python setup.py build
    $ python
    > import sys
    > sys.path.insert(0, 'build/lib.linux-x86_64-2.7')
    > from nnet_ts import *
    > time_series = np.array(pd.read_csv("nnet_ts/AirPassengers.csv")["x"]) 
    > neural_net = TimeSeriesNnet(hidden_layers = [20, 15, 5], activation_functions = ['sigmoid', 'sigmoid', 'sigmoid'])

转到安装nnet-ts的路径,例如"C:\Users\a\anaconda3\Lib\site-packages\nnet_ts"

在编辑器中打开 __init__ python 文件并将行从 from TimeSeriesNnet import TimeSeriesNnetfrom .TimeSeriesNnet import TimeSeriesNnet.

TimeSeriesNnet 之前添加点对我的情况有效。