【发布时间】:2016-03-24 03:23:55
【问题描述】:
我正在尝试使用 pybrain 输出 rgb 值。输入层采用 rgb 值数组,所有隐藏层都是线性模型。我本来希望网络输出 rgb 值。然而,这个网络的输出结果是一个值数组,这些值在 0:255 的范围内并不接近。 这些图像是大约 25 种不同的公牛 .jpg 图像。每个图像都是一个长度为 575280 的扁平数组。我希望网络能够收敛到最终类似于公牛的图像上。
import numpy as np
from pybrain.structure import FeedForwardNetwork, LinearLayer, SigmoidLayer, GaussianLayer, TanhLayer
from pybrain.structure import FullConnection, BiasUnit
import testabull
bull_x = 510
bull_y = 398
bull_flat = 575280
n = FeedForwardNetwork()
bias_unit = BiasUnit()
in_layer = LinearLayer(bull_flat)
hidden_A = LinearLayer(5)
hidden_B = LinearLayer(10)
out_layer = LinearLayer(bull_flat)
n.addInputModule(in_layer)
n.addModule(hidden_A)
n.addModule(hidden_B)
n.addOutputModule(out_layer)
n.addModule(bias_unit)
in_to_hidden = FullConnection(in_layer, hidden_A)
hidden_to_hidden = FullConnection(hidden_A, hidden_B)
hidden_to_out = FullConnection(hidden_B, out_layer)
bias_to_hidden = FullConnection(hidden_B, out_layer)
n.addConnection(in_to_hidden)
n.addConnection(hidden_to_hidden)
n.addConnection(bias_to_hidden)
n.addConnection(hidden_to_out)
n.sortModules()
bull_img_array = testabull.crop_the_bull_images('../../imgs/thebull/')
trainable_array = [] ## an array of flattened images
for im in bull_img_array:
flat_im = np.array(im).flatten()
trainable_array.append(flat_im)
print n
print n.activate(trainable_array[0])
output = None
for a in trainable_array:
output = n.activate(a)
print output, len(output)
如果有人有任何提示,我将非常感激。
【问题讨论】:
-
print output-> [ 1039728.7439811 -2709035.59004357 181299.70423675 ..., -2346161.70897572 2502290.25359657 -404511.8070
标签: python machine-learning neural-network pybrain