2

我正在尝试训练 ANN,但直到现在它还没有学习训练样本的较低值。我尝试过使用不同的 python 库来训练 ANN。目的是根据其他天气参数预测太阳辐射(回归问题)。我认为 ANN 将较低的值(冬季/阴天)与夜间值(可能)混淆了。我尝试了以下方法,但都没有奏效;

  1. 在不同值之间缩放数据,例如 [0,1],[-1,1]
  2. 标准化数据以具有零均值和单位方差
  3. 洗牌数据
  4. 增加训练样本(从 3 年到 10 年)
  5. 使用不同的训练函数(例如 bfds、gdm)
  6. 尝试不同的传递函数(例如 LogSig、TanSig)
  7. 使用少量输入变量
  8. 改变隐藏层和隐藏层的神经元

下面是我使用神经实验室的代码,但我也使用了 nolearn/lasagne,但它也不起作用。

f = np.loadtxt('C:\Users\ABC.txt')
input = f[:,:8]
output = f[:,8:]
size = len(input)
output3=output
input3=input
norm_inp = nl.tool.Norm(input)
input4 = norm_inp(input)
norm_out = nl.tool.Norm(output)
output4 = norm_out(output)
net = nl.net.newff([[0, 1], [0, 1], [0, 1],[0,1],[0,1],[0,1],[0,1],[0,1]],[100, 1])
net.trainf = nl.train.train_bfgs
net.layers[0].transf= nl.trans.LogSig()
#net.layers[1].transf= nl.trans.LogSig()
error = net.train(input4, output4, epochs=1000, show=10, goal=0)
networksave = net.save('netD1.dat')

请看下面,我得到的一些结果。关于我可能做错了什么或任何尝试的方向的任何想法? 结果

4

0 回答 0