如何从tensorflow premade估算器获取和分配变量?

时间:2018-02-19 14:17:32

标签: python tensorflow

我正在尝试在张量流r1.5中通过DNNClassifier实现DQN。现在我需要实现目标网和评估网之间的变量交换,但我既可以找到从tf.Estimator检索变量也不能为另一个估算器赋值的方法。

我知道我可以通过tf.estimator.get_variable_value(name)获取值,但是没有分配值的函数。我认为为变量赋值的唯一方法是tf.assign。但是,此函数需要引用Variable Tensor,如果您手动构建图形,则可以tf.trainable_variablestf.Graph.get_collection获取。

我尝试在tf.trainable_variables之后调用estimator.train,但获得了一个空列表。这是我的代码(数据只是一些随机值):

import tensorflow as tf

tf.logging.set_verbosity(tf.logging.INFO)

x = {"x": [1, 13, 26, 37, 47, 67, 49]}
y = [1,  1,  0,  1,  1,  1,  1]  

my_feature_columns = [tf.feature_column.numeric_column(key="x")]

def my_input_fn():
    dataset = tf.data.Dataset.from_tensor_slices((x, y)) 
    return dataset.shuffle(100).repeat().batch(3).make_one_shot_iterator().get_next()

classifier = tf.estimator.DNNClassifier(
        feature_columns=my_feature_columns,
        hidden_units=[10],
        n_classes=2)

classifier.train(input_fn=my_input_fn, steps=500)

print(tf.trainable_variables()

有没有办法做这样的工作?

0 个答案:

没有答案