如何格式化Deep Belief神经网络的训练/测试集
发布时间:2020-12-20 13:06:25 所属栏目:Python 来源:网络整理
导读:我正在尝试使用实现 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],[
我正在尝试使用实现
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],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,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],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],borrow=True) #,numpy.asarray(train_set_x[0][1],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_outs=1) train_set = [ ([1,([4,]) ] 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,k=1) pretraining_fns方法期望作为输入的大小共享变量(样本数,输入维度).您可以通过查看MNIST数据集的形状来检查这一点,该数据集是此示例的标准输入 它不会将列表作为输入,因为此方法仅适用于预训练功能. DBN使用无监督学习算法进行预训练,因此使用标签没有意??义 此外,使您的numpy数组的输入列表没有意义. train_set_x [0] [0]仅产生第一个训练示例.您希望train_set_xPrime拥有所有培训示例.即使你做了train_set_x [0],你也会得到第一个训练样例但是有标签 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |