【发布时间】:2016-06-11 05:19:28
【问题描述】:
我想用 sine() 函数训练一个神经网络。
目前我使用此代码和 (cerebrum gem):
require 'cerebrum'
input = Array.new
300.times do |i|
inputH = Hash.new
inputH[:input]=[i]
sinus = Math::sin(i)
inputH[:output] = [sinus]
input.push(inputH)
end
network = Cerebrum.new
network.train(input, {
error_threshold: 0.00005,
iterations: 40000,
log: true,
log_period: 1000,
learning_rate: 0.3
})
res = Array.new
300.times do |i|
result = network.run([i])
res.push(result[0])
end
puts "#{res}"
但它不起作用,如果我运行经过训练的网络,我会得到一些奇怪的输出值(而不是得到正弦曲线的一部分)。
那么,我做错了什么?
【问题讨论】:
-
顺便说一句,我想到你希望
Math::sin使用度数 - 它没有,它以更大的单位弧度工作。如果您只想查看预测的单个正弦波,可以使用sinus = Math::sin(i.to_f/50)或附近
标签: ruby neural-network artificial-intelligence