0

fann2我今天的问题是关于Python 2 包的奇怪行为,同时使用matplotlibpyqtgraph同时使用。

假设我需要实时绘制我的 FANN 网络 MSE。然后我将使用matplotlib交互性和一些while True循环或Thread更新我的情节。但为简单起见,让我们举一个下面的例子。

以下脚本将创建一个新的神经网络并将其存储到一个文件中:

#!/usr/bin/python2

from fann2 import libfann
import matplotlib.pyplot as plt

PLOT = False

if PLOT:
    plt.show()
    axes = plt.subplot(111)

connection_rate = 1
layers = (10, 5)
activation_f = libfann.SIGMOID_SYMMETRIC_STEPWISE
ann = libfann.neural_net()
ann.create_sparse_array(connection_rate, layers)
ann.randomize_weights(-0.1, 0.1)
ann.save('my_network.ann')

请注意PLOT当前禁用绘图的标志。

现在让我们看一下输出文件。让我们看看最后一行:

connections (connected_to_neuron, weight)=(0, -9.04591381549835205078e-02) ...

...表示更多省略的字符)

一切都很好,直到我们将PLOTvalue 更改为True... 之后,相应的行将如下所示:

connections (connected_to_neuron, weight)=(0, -7,55163878202438354492e-02) ...

这会导致加载保存的网络时出错。例子:

from fann2 import libfann
ann = libfann.neural_net()
ann.create_from_file('my_network.ann')

给出以下错误:FANN Error 4: Error reading "connection_rate" from configuration file "my_network.ann".

有人知道如何解决这个奇怪的问题吗?也许我应该简单地在 matplotlib 的某个地方更改浮点数格式?我已经搜索了他们的文档,但还没有找到如何做到这一点。

我想这个原因在别的地方。这很有趣,但 PyQtGraph 给出了相同的结果。这是一个奖励脚本:

#!/usr/bin/python2

from fann2 import libfann
import pyqtgraph as pg

PLOT = False

if PLOT:
pg.plot([1, 2], [3, 4], pen=None, symbol='o')

connection_rate = 1
layers = (10, 5)
activation_f = libfann.SIGMOID_SYMMETRIC_STEPWISE
ann = libfann.neural_net()
ann.create_sparse_array(connection_rate, layers)
ann.randomize_weights(-0.1, 0.1)
ann.save('my_network.ann')
4

1 回答 1

0

如果 fann2 抱怨它们,请尝试在此处添加连接速率“my_network.ann”和其他几个设置,例如“cascade_min_out_epochs”。

connection_rate = 0.7000 {或您的首选费率}

当我将我的操作系统更新为更新版本的 libfann 时,我发生了这种情况,即 fann2

加载配置文件时我得到这个:“ FANN 错误 3:配置文件版本错误,正在中止读取配置文件“myfile.net”。分段错误”</p>

通过添加 fann2 抱怨的所有设置来修复它。

于 2018-10-13T21:01:47.580 回答