[nengo-user] Converting digit.py from nengo 1.4 to nengo 2.0.

鄭士康 skjeng at ntu.edu.tw
Tue Oct 13 22:05:19 EDT 2015


Hi,

I am trying to convert digit.py from nengo 1.4 to nengo 2.0.
I got digit.py from the model
“RBM Deep Belief Network for Visual Digit Recognition”
provided in Model Archive.
Could anyone help to solve the following problem?

When I converted a piece of code:

w2=read('mat_2_w.csv')   # weights for layer 2 (computed using standard Matlab learning model)
b2=read('mat_2_b.csv')   # bias for layer 2 (computed using standard Matlab learning model)

layer2=net.make_array('layer2',N,len(w2[0]),encoders=[[1]],intercept=(0,0.8),seed=seed)
bias2=net.make_input('bias2',b2[0])
net.connect(bias2,layer2)
net.connect(layer1,layer2,func=transform,transform=numeric.array(w2).T,pstc=pstc)

to

with net:
w2=read('mat_2_w.csv')   # weights for layer 2 (computed using standard Matlab learning model)
b2=read('mat_2_b.csv')   # bias for layer 2 (computed using standard Matlab learning model)
bias2=nengo.Node(output=b2[0])
layer2=nengo.networks.EnsembleArray(N,n_ensembles=len(w2[0]))
nengo.Connection(bias2, layer2.input)
    nengo.Connection(layer1.output, layer2.input, transform=np.array(w2).T, function=transform,
synapse=pstc)

I got an error message:

Traceback (most recent call last):
  File "D:/KnowThyself/CCN2015/nengoProjects/rbm-vision/digit.py", line 80, in <module>
    nengo.Connection(layer1.output, layer2.input, transform=np.array(w2).T, function=transform, synapse=pstc)
  File "C:\Users\User\Anaconda\lib\site-packages\nengo\base.py", line 24, in __call__
    inst.__init__(*args, **kwargs)
  File "C:\Users\User\Anaconda\lib\site-packages\nengo\connection.py", line 249, in __init__
    self.function_info = function  # Must be set after transform
  File "C:\Users\User\Anaconda\lib\site-packages\nengo\base.py", line 63, in __setattr__
    super(NengoObject, self).__setattr__(name, val)
  File "C:\Users\User\Anaconda\lib\site-packages\nengo\params.py", line 239, in __set__
    super(FunctionParam, self).__set__(instance, function_info)
  File "C:\Users\User\Anaconda\lib\site-packages\nengo\params.py", line 69, in __set__
    self.validate(instance, value)
  File "C:\Users\User\Anaconda\lib\site-packages\nengo\connection.py", line 90, in validate
    "(%d)" % (type_pre, size_mid, transform.shape[1]))
ValueError: Validation error when setting 'Connection.function_info': Node output size (1) not equal to transform input size (1000)

I believe this error is due to the setting of a parameter, function=transform; however,
I tried many ways and cannot get it work, and
I cannot find the answer in the documents and the code in Github.
Thank you for answering my question in advance.

Sincerely,

Shyh-Kang Jeng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://artsservices.uwaterloo.ca/pipermail/nengo-user/attachments/20151014/7fd0b767/attachment-0002.html>


More information about the nengo-user mailing list