1. 程式人生 > >tensorflow-collection收集器

tensorflow-collection收集器

con -c b+ import env 退出 arr collect none

collection收集器的作用在於,可以在計算圖運行過程中保存需要的值。

get_collection得到collection中關於key的內容,返回值是一個列表。

add_to_collection將值增加到collection中,並與name關聯

add_to_collections將一個值放入多個collection中

tf.get_collection(
key,
scope=None
)
tf.add_to_collection(
name,
value
)

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 27 11:16:32 2018

@author: myhaspl
"""

import tensorflow as tf
a = tf.constant([[1., 2.], [3., 4.]])
b = a+1
c= b+2

tf.add_to_collection("my_constant",a)
tf.add_to_collection("my_constant",b)  
tf.add_to_collection("my_constant",c)

const_vals=tf.get_collection("my_constant")
res=tf.add_n([a,b,c])                                                         
sess=tf.Session()
with sess:
    print sess.run(res)
    print sess.run(const_vals)

[[ 7. 10.]
[13. 16.]]
[array([[1., 2.],
[3., 4.]], dtype=float32), array([[2., 3.],
[4., 5.]], dtype=float32), array([[4., 5.],
[6., 7.]], dtype=float32)]
記住,上次跑程序已經保存的值不會被自動刪除,值會累計保存,直到python進程退出。否則,再跑一次上面的程序,則

[[ 7. 10.]
[13. 16.]]
[array([[1., 2.],
[3., 4.]], dtype=float32), array([[2., 3.],
[4., 5.]], dtype=float32), array([[4., 5.],

[6., 7.]], dtype=float32), array([[1., 2.],
[3., 4.]], dtype=float32), array([[2., 3.],
[4., 5.]], dtype=float32), array([[4., 5.],
[6., 7.]], dtype=float32)]

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 27 11:16:32 2018

@author: myhaspl
"""

import tensorflow as tf
a = tf.constant([[1., 2.], [3., 4.]])

tf.add_to_collections(["my_con1","my_con2"],a)

const_1=tf.get_collection("my_con1")
const_2=tf.get_collection("my_con2")

sess=tf.Session()
with sess:

    print sess.run(const_1)
    print sess.run(const_2)

[array([[1., 2.],
? ? ? ?[3., 4.]], dtype=float32)]
[array([[1., 2.],
? ? ? ?[3., 4.]], dtype=float32)]

tensorflow-collection收集器