【问题标题】:What should I do for using theano scan in deep Learning在深度学习中使用 theano 扫描应该怎么做
【发布时间】:2016-05-02 22:20:07
【问题描述】:

我想在我的 DNN 中使用 then scan 进行 tensor3 计算,我们可以说这个 tensor3 是一个 3D 矩阵,我希望这个矩阵的每一层都经过 T.nnet.softmax(T.dot(v, W)+b) 计算、W 和 @987654323 @ 应该是固定的,所以我可以稍后进行更新。以下是我的编码:

XS = T.tensor3("XS") 
W = T.matrix(name="W")
b = T.vector(name="b") 

results, updates = theano.scan(lambda XS: T.nnet.softmax(T.dot(XS,W) + b),  
               sequences=[XS],  
               outputs_info=None)

result = results  
Mutiply = theano.function(inputs=[XS, W, b], outputs=[result]) 

#initialization of output of layer2
w_o = init_weights((1089, 10))
b_o = init_weights((10,))

myFile_data = h5py.File('/Users/XIN/Masterthesis/Torch_Script/mnist-cluttered/train_data.h5', 'r')
myFile_label= h5py.File('/Users/XIN/Masterthesis/Torch_Script/mnist-cluttered/train_target.h5', 'r')
data = myFile_data['data'][...]
label = myFile_label['target'][...]
data = data.reshape(100000, 10000) 
trX = data
trY = label
X_s = downsampling(trX)
X_nine = load_data_train(trX, trX.shape[0], 9)
X_nine = X_nine.transpose((((2,0,1))))

p_x_nine = Mutiply(X_nine, w_o, b_o)[0]

但结果显示此错误:

runfile('/Users/XIN/Masterthesis/keras/thean_scan_test.py', wdir='/Users/XIN/Masterthesis/keras')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/XIN/anaconda/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
    execfile(filename, namespace)
  File "/Users/XIN/anaconda/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 81, in execfile
    builtins.execfile(filename, *where)
  File "/Users/XIN/Masterthesis/keras/thean_scan_test.py", line 115, in <module>
    p_x_nine = Mutiply(X_nine, w_o, b_o)[0]
  File "/Users/XIN/anaconda/lib/python2.7/site-packages/theano/compile/function_module.py", line 786, in __call__
    allow_downcast=s.allow_downcast)
  File "/Users/XIN/anaconda/lib/python2.7/site-packages/theano/tensor/type.py", line 86, in filter
    'Expected an array-like object, but found a Variable: '
TypeError: ('Bad input argument to theano function with name "/Users/XIN/Masterthesis/keras/thean_scan_test.py:92"  at index 1(0-based)', 'Expected an array-like object, but found a Variable: maybe you are trying to call a function on a (possibly shared) variable instead of a numeric array?')

我检查 X_nine 类型是:np 数组,但 w_ob_otheano 类型。 那么我应该怎么做才能修改这段代码。

【问题讨论】:

    标签: python machine-learning computer-vision theano deep-learning


    【解决方案1】:

    得到我的导师的解决方案,编码如下:

    XS = T.tensor3("XS") 
    w_o = init_weights((1089, 10))
    b_o = init_weights((10,))
    
    results, updates = theano.scan(lambda XS: T.nnet.softmax(T.dot(XS,w_o) + b_o),  
                                   sequences=[XS],  
                                   outputs_info=None)
    
    result = results  
    Mutiply = theano.function(inputs=[XS], outputs=[result]) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 2022-12-11
      • 2017-06-19
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多