我想创建一个具有给定层数的NN。
为此,我想遍历变量hidden layers
并初始化每个图层的权重。但是,我需要使用不同的名称来存储不同的权重,因此我想使用内部的参数来命名W
变量。初始化参数所指定的数量
因此,如果:hidden_layers = 2
。
我要初始化的变量是:w1, w2
如果hidden_layers = 4
然后,我想拥有:w1, w2, w3, w4
我想用for循环初始化变量:
for i in range (hidden_layers):
W + str(i) = tf.Variable(tf.initializers.GlorotUniform()(shape=[input_shape,code_length]),name='W1') #This is wrong!
有人可以帮忙吗?谢谢!
答案 0 :(得分:1)
您不能像这样随意地给变量命名。如果要有四个“变量”,则可以使用一个列表,该列表将允许您添加所需数量的“变量”。如果您不想使用列表,则还可以实例化四个对象。
variables_list = []
hidden_layers = 4
for i in range(hidden_layers):
variables_list.append(i)
# set the variables as you wish
variables_list[0] = "value"
答案 1 :(得分:0)
使用列表可能是其他建议的解决方案,但是如果万一您的“图层”没有按顺序增加,我建议您使用字典:
my_variables = {}
hidden_layers = [1, 2, 4, 6]
for layer in hidden_layers:
my_variables['w' + str(layer)] = ...
# To use it:
my_variables.get('w2')