问题描述
原始代码如下: 将theano.tensor导入为tt
import theano.tensor as tt
r = inp[:,0] # response/choice in current trial for all subjects
o = 2 * inp[:,1] - 1 # reward outcome of current choice for all subjects
t = inp[:,2] # a control variable which prevents update in case of nan trials
v = tt.set_subtensor(v[l_subs,r],v[l_subs,r] + t * alpha0 * (o - v[l_subs,r]))
v = tt.set_subtensor(v[l_subs,1 - r],1 - r] + t * kappa * alpha0 * (-o - v[l_subs,1 - r]))
...
return v
r,o,t,v是向量。在相同条件下,变量“ v”被分配值为jsut。 v是一个向量。但是,我想在不同的条件下为'v'赋值,如下所示:
for i_sub in l_subs:
if o[i_sub] == 1:
v[i_sub,r[i_sub]] = tt.set_subtensor(v[i_sub,r[i_sub]],v[i_sub,r[i_sub]] + t[i_sub] * alpha0 * (o[i_sub] - v[i_sub,r[i_sub]]))
v[i_sub,1 - r[i_sub]] = tt.set_subtensor(v[i_sub,1 - r[i_sub]],1 - r[i_sub]] + t[i_sub] * kappa * alpha0 * (-o[i_sub] - v[i_sub,1 - r[i_sub]]))
else:
v[i_sub,r[i_sub]] + t[i_sub] * alpha1 * (o[i_sub] - v[i_sub,1 - r[i_sub]] + t[i_sub] * kappa * alpha1 * (-o[i_sub] - v[i_sub,1 - r[i_sub]]))
v0.append(new_v0,new_v1)
但这显然不是正确的语法。如何实现呢?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)