Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用tf.constant或numpy数组初始化tf.Variable?_Python_Numpy_Tensorflow_Global Variables - Fatal编程技术网

Python 如何使用tf.constant或numpy数组初始化tf.Variable?

Python 如何使用tf.constant或numpy数组初始化tf.Variable?,python,numpy,tensorflow,global-variables,Python,Numpy,Tensorflow,Global Variables,我正在尝试初始化tf.InteractiveSession()中的tf.Variable()。我已经有一些预先训练好的权重,它们是单独的numpy文件。如何使用这些numpy值有效地初始化变量 我经历了以下几种选择: 使用tf.assign() 在tf.Variable()创建过程中直接使用sess.run() 这些值似乎没有正确初始化。 以下是我尝试过的一些代码。让我知道哪个是正确的 def read_numpy(file): return np.fromfile(file,dtype

我正在尝试初始化
tf.InteractiveSession()
中的
tf.Variable()
。我已经有一些预先训练好的权重,它们是单独的
numpy
文件。如何使用这些
numpy
值有效地初始化变量

我经历了以下几种选择:

  • 使用
    tf.assign()
  • tf.Variable()创建过程中直接使用
    sess.run()
  • 这些值似乎没有正确初始化。 以下是我尝试过的一些代码。让我知道哪个是正确的

    def read_numpy(file):
        return np.fromfile(file,dtype='f')
    
    def build_network():
        with tf.get_default_graph().as_default():
            x = tf.Variable(tf.constant(read_numpy('foo.npy')),name='var1')
            sess = tf.get_default_session()
            with sess.as_default():
                sess.run(tf.global_variables_initializer())
    
    sess = tf.InteractiveSession()
    with sess.as_default():
        build_network()
    
    这是正确的方法吗?我已经打印了
    会话
    对象,它与整个过程中使用的会话相同

    编辑:当前似乎使用
    sess.run(tf.global\u variables\u initializer())
    调用随机初始化op

    tf.Variable()
    接受numpy数组作为初始值:

    将tensorflow导入为tf
    将numpy作为np导入
    init=np.one((2,2))
    
    x=tf.Variable(init)#可以使用
    tf.get_Variable()
    。。我用了它,它成功了。我有一个属性为
    initializer=tf.constant(read_numpy('foo.npy'))
    Yes,您可以。
    tf.Variable()
    tf.get_Variable()
    之间的区别在于
    tf.Variable()
    创建一个新变量,而
    get_Variable()
    可以创建一个新变量或返回一个现有变量。更多阅读答案哦,好吧,我第一次使用
    tf.get_variable()
    时确实遇到了一个错误,因为命名冲突。。但后来我将其包含在
    tf.variable\u scope()中,并对其进行了处理。谢谢你的回复!很高兴这有帮助。我仍然会使用
    x=tf.Variable(read_numpy('foo.npy'))
    。这样比较短。