我想创建一个简单的MLP。我有一个参数集[W1,b1,W2,b2,W3,b3]其中W是2-d,b是1-d。我想将参数集连接到一个向量,我这样做了:
learnable_param_list = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES)
learnable_param = tf.concat(1, [[tf.reshape(param, [-1])] for param in learnable_param_list], name='learnable_paramVector')
这似乎有效。现在我想用单个向量更新learnable_param_list。我试过了
learnable_param_assign_split = tf.split_v(split_dim=0, value=learnable_param_assign_placeholder, size_splits=[tf.size(param) for param in learnable_param_list])
for idx, param_list in learnable_param_list:
reshaped_input_vector = tf.reshape(learnable_param_assign_split[idx], shape=tf.shape(param_list))
assignLearnableParam_op_list += [param_list.assign(learnable_param_assign_placeholder)]
这不起作用。我得到很多错误,例如"变量不可迭代"和零尺寸张量。如何拆分矢量并将其分配给不同形状的多个张量?
答案 0 :(得分:0)
我找到了答案。 split_size可以替换[reduce(mul,param.get_shape()。as_list(),1)for learnable_param_list]