草庐IT

python - 为什么我允许 pickle 是 Theano 函数的实例方法,而不是普通的实例方法?

在使用joblib并行化一些涉及Theano函数的模型拟合代码的过程中,我偶然发现了一些对我来说似乎很奇怪的行为。考虑这个非常简单的例子:fromjoblibimportParallel,delayedimporttheanofromtheanoimporttensorasteimportnumpyasnpclassTheanoModel(object):def__init__(self):X=te.dvector('X')Y=(X**te.log(X**2)).sum()self.theano_get_Y=theano.function([X],Y)defget_Y(self,x):

python - 如何在theano中保存/序列化训练好的模型?

我按照loadingandsaving上的记录保存了模型.#savingtrainedmodelf=file('models/simple_model.save','wb')cPickle.dump(ca,f,protocol=cPickle.HIGHEST_PROTOCOL)f.close()ca是经过训练的自动编码器。它是类cA的一个实例.从我构建和保存模型的脚本中,我可以毫无问题地调用ca.get_reconstructed_input(...)和ca.get_hidden_​​values(...)。在不同的脚本中,我尝试加载经过训练的模型。#loadingthetrained

python - Google 的 TensorFlow 中的 Theano Dimshuffle 等效?

我看到一起转置和reshape会有帮助,但我不知道如何使用。例如。dimshuffle(0,'x')使用transpose和reshape相当于什么?或者,还有更好的方法?谢谢。 最佳答案 在TensorFlow中实现Theano的dimshuffle有三个相关操作:tf.transpose()用于置换张量的维度。如果在dimshuffle的参数中指定的模式是输入张量维度的排列(即没有'x'或缺少维度),您可以使用tf.transpose()来实现dimshuffle()。tf.expand_dims()用于向张量添加一个或多个si

python - 如何在theano上实现加权二进制交叉熵?

如何在theano上实现加权二进制交叉熵?我的卷积神经网络只预测0~~1(sigmoid)。我想用这种方式惩罚我的预测:基本上,当模型预测为0但事实为1时,我想惩罚更多。问题:如何使用theano和lasagne创建这个加权二进制交叉熵函数?我在下面试过prediction=lasagne.layers.get_output(model)importtheano.tensorasTdefweighted_crossentropy(predictions,targets):#Copythetensortgt=targets.copy("tgt")#Makeitavector#tgt=tg

python - 警告 (theano.sandbox.cuda) : CUDA is installed, 但设备 gpu 不可用(错误:cuda 不可用)

在UbuntuMATE16.04中,我尝试使用GPU在此处运行深度学习python示例:testingTheanowithGPU我确实运行了示例代码,THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32pythoncheck1.py不过好像用的是CPU,不是GPU。这是终端输出的最后一部分:WARNING(theano.sandbox.cuda):CUDAisinstalled,butdevicegpu0isnotavailable(error:cudaunavailable)...Usedthecpu我也试过运行这段代码:THEAN

python - Theano是否为BPTT做自动展开?

我正在Theano中实现RNN,但我很难对其进行训练。它甚至无法记住训练语料库。我的错误很可能是由于我不完全理解Theano如何处理时间反向传播造成的。现在,我的代码非常简单:grad_params=theano.tensor.grad(cost,params)我的问题是:考虑到我的网络是循环的,这是否会自动将架构展开为前馈架构?一方面,this示例完全符合我的要求。另一方面,this线程让我觉得我错了。如果它确实为我展开,我该如何截断它?我可以看到有一种方法,来自documentation的scan,但我想不出执行此操作的代码。 最佳答案

python - 在 Theano 中定义关于子张量的梯度

从概念上讲,我有一个关于Theano的简单问题,但我一直无法找到答案(尽管学习了很多小时的教程,但我要坦白地说,我并不真正理解共享变量在Theano中的工作原理)。我正在尝试实现“反卷积网络”;具体来说,我有一个3张量的输入(每个输入都是一个2D图像)和一个4张量的代码;对于第i个输入codes[i]表示一组代码字,它们一起对输入i进行编码。我在弄清楚如何对代码字进行梯度下降方面遇到了很多麻烦。以下是我的代码的相关部分:idx=T.lscalar()pre_loss_conv=conv2d(input=codes[idx].dimshuffle('x',0,1,2),filters=d

Python - Theano scan() 函数

我无法完全理解theano.scan()的行为。这是一个例子:importnumpyasnpimporttheanoimporttheano.tensorasTdefaddf(a1,a2):returna1+a2i=T.iscalar('i')x0=T.ivector('x0')step=T.iscalar('step')results,updates=theano.scan(fn=addf,outputs_info=[{'initial':x0,'taps':[-2]}],non_sequences=step,n_steps=i)f=theano.function([x0,i,ste

python - PyMC3 & Theano - Theano 代码在导入 pymc3 后停止工作

一些简单的theano代码完美运行,当我导入pymc3时停止运行为了重现错误,这里有一些片段:#InitialTheanoCode(thisworks)importtheano.tensorastsrx=tsr.dscalar('x')y=tsr.dscalar('y')z=x+y#Snippet1importpymc3aspmimporttheano.tensorastsrx=tsr.dscalar('x')y=tsr.dscalar('y')z=x+y#Snippet2importtheano.tensorastsrimportpymc3aspmx=tsr.dscalar('x')

python - 如何在 Windows 7 64 位上使用 theano 设置 cuDnn

我已经在我的机器上安装了Theano框架并启用了CUDA,但是当我在我的python控制台中“导入theano”时,我收到以下消息:>>>importtheanoUsinggpudevice0:GeForceGTX950(CNMeMisdisabled,CuDNNnotavailable)现在“CuDNN不可用”,我从Nvidia网站下载了cuDnn。我还更新了环境中的“路径”,并在“.theanorc.txt”配置文件中添加了“optimizer_including=cudnn”。然后,我再次尝试,但失败了:>>>importtheanoUsinggpudevice0:GeForce