使用NN的参数命名变量

时间:2019-07-02 21:41:39

标签: python tensorflow variables neural-network

我想创建一个具有给定层数的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!

有人可以帮忙吗?谢谢!

2 个答案:

答案 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')