gpt4 book ai didi

python - 如何格式化深度信念神经网络的训练/测试集

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:07 25 4
gpt4 key购买 nike

我正在尝试使用 this page 中的代码来实现.但我不知道如何正确格式化数据(训练集/测试集)。我的代码:

    numpy_rng = numpy.random.RandomState(123)
dbn = DBN(numpy_rng=numpy_rng, n_ins=2,hidden_layers_sizes=[50, 50, 50],n_outs=1)

train_set_x = [
([1,2],[2,]), #first element in the tuple is the input, the second is the output
([4,5],[5,])
]

testing_set_x = [
([6,1],[3,]), #same format as the training set
]

#when I looked at the load_data function found elsewhere in the tutorial (I'll show the code they used at the bottom for ease) I found it rather confusing, but this was my first attempt at recreating what they did
train_set_xPrime = [theano.shared(numpy.asarray(train_set_x[0][0],dtype=theano.config.floatX),borrow=True),theano.shared(numpy.asarray(train_set_x[0][1],dtype=theano.config.floatX),borrow=True)]

pretraining_fns = dbn.pretraining_functions(train_set_x=train_set_xPrime,batch_size=10,k=1)

产生此错误的原因:

    Traceback (most recent call last):
File "/Users/spudzee1111/Desktop/Code/NNChatbot/DeepBeliefScratch.command", line 837, in <module>
pretraining_fns = dbn.pretraining_functions(train_set_x=train_set_xPrime,batch_size=10,k=1)
File "/Users/spudzee1111/Desktop/Code/NNChatbot/DeepBeliefScratch.command", line 532, in pretraining_functions
n_batches = train_set_x.get_value(borrow=True).shape[0] / batch_size
AttributeError: 'list' object has no attribute 'get_value'

我不知道应该如何格式化输入。我尝试在列表中使用 theano.shared,这样它将是:

    train_set_xPrime = theano.shared([theano.shared(numpy.asarray(train_set_x[0][0],dtype=theano.config.floatX),borrow=True),theano.shared(numpy.asarray(train_set_x[0][1],dtype=theano.config.floatX),borrow=True)],borrow=True)

然后它说:

    Traceback (most recent call last):
File "/Users/spudzee1111/Desktop/Code/NNChatbot/DeepBeliefScratch.command", line 834, in <module>
train_set_xPrime = theano.shared([theano.shared(numpy.asarray(train_set_x[0][0],dtype=theano.config.floatX),borrow=True),theano.shared(numpy.asarray(train_set_x[0][1],dtype=theano.config.floatX),borrow=True)],borrow=True) #,borrow=True),numpy.asarray(train_set_x[0][1],dtype=theano.config.floatX),borrow=True))
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/theano/compile/sharedvalue.py", line 228, in shared
(value, kwargs))
TypeError: No suitable SharedVariable constructor could be found. Are you sure all kwargs are supported? We do not support the parameter dtype or type. value="[<TensorType(float64, vector)>, <TensorType(float64, vector)>]". parameters="{'borrow': True}"

我尝试了其他组合,但没有一个有效。

最佳答案

这应该可行

numpy_rng = numpy.random.RandomState(123)
dbn = DBN(numpy_rng=numpy_rng, n_ins=2, hidden_layers_sizes=[50, 50, 50], n_outs=1)

train_set = [
([1,2],[2,]),
([4,5],[5,])
]

train_set_x = [train_set[i][0] for i in range(len(train_set))]
nparray = numpy.asarray(train_set_x, dtype=theano.config.floatX)
train_set_x = theano.shared(nparray, borrow=True)

pretraining_fns = dbn.pretraining_functions(train_set_x=train_set_x, batch_size=10, k=1)

pretraining_fns 方法期望将大小共享变量(样本数、输入维度)作为输入。您可以通过查看 MNIST 数据集的形状(此示例的标准输入)来检查这一点

它不将列表作为输入,因为此方法仅适用于预训练功能。 DBN 使用无监督学习算法进行预训练,因此使用标签没有意​​义

此外,用于制作 numpy 数组的输入列表没有意义。 train_set_x[0][0] 仅产生第一个训练示例。您希望 train_set_xPrime 拥有所有训练示例。即使您执行了 train_set_x[0],您也会得到第一个训练示例,但带有标签

关于python - 如何格式化深度信念神经网络的训练/测试集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31708721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com