电子商务网站管理系统,南京网站设计建设推荐,北京设计公司招聘信息,长春纯手工seo最近学习深度学习#xff0c;学习时间半月不到#xff0c;很多程序似懂非懂#xff0c;用的又是不太明白的python。不过不怕。什么也难不倒无产阶级#xff0c;自己剖析下#xff0c;不指望指点别人#xff0c;只希望高人能指点。 主函数大体可以分为 建立DBN网络#x…最近学习深度学习学习时间半月不到很多程序似懂非懂用的又是不太明白的python。不过不怕。什么也难不倒无产阶级自己剖析下不指望指点别人只希望高人能指点。 主函数大体可以分为 建立DBN网络预训练模型和微调模型三部分。 1.建立DBN网络 由class DBN(object)的__init__函数来完成思路是由前面的隐含层生成后面的隐含层并生成与每一个隐含层对应的RBM层 2.预训练模型 首先获得预训练函数由class DBN(object)的pretraining_functions函数来完成训练的对象是RBM层.里面的核心语句为 cost, updates rbm.get_cost_updates(learning_rate,persistentNone, kk) fn theano.function(inputs[index,theano.Param(learning_rate, default0.1)], outputscost,updatesupdates,givens{self.x:train_set_x[batch_begin:batch_end]}) 第二句的输出是cost和updates 要看清他们的结构还得从第一句的RBM的get_cost_updates函数来看。 get_cost_updates是执行一步CD/PCD运算。 程序首先建立一个类class DBN(object)里面包含3个函数 1. def __init__(self, numpy_rng, theano_rngNone, n_ins784, hidden_layers_sizes[500, 500], n_outs10): self.n_layers len(hidden_layers_sizes) 结果为2表示2层 if not theano_rng: theano_rng RandomStreams(numpy_rng.randint(2 ** 30)) theano_rng说是随机产生器不知道做什么用往下看。 self.x T.matrix(x) # the data is presented as rasterized images 数据是光栅化的图像是不是可以理解为采样的图像self.y T.ivector(y) # the labels are presented as 1D vector # of [int] labels 下面的代码对于每一层进行扫描 for i in xrange(self.n_layers): 指定输入大小:第一层的时候输入是图像否则就是对应隐含层 指定输入层。 根据 输入和输出层大小、输入图像 就可以求出隐含层 根据隐含层可以求出RBM层 转载于:https://www.cnblogs.com/Iknowyou/p/3656153.html