簡體   English   中英

如何在Tensorflow中操作變量

[英]How to manipulate Variables in Tensorflow

我想做這樣簡單的事情a = a + b ,示例代碼如下

sess = tf.InteractiveSession()

embed = tf.Variable(tf.random_uniform([10, 2], -1, 1))

saver = tf.train.Saver([embed])
saver.restore(sess, 'save/model.ckpt')

new_embed = tf.Variable(tf.random_uniform([5, 2], -1, 1))

init = tf.initialize_variables([new_embed])
sess.run(init)

embed = tf.Variable(tf.concat(0, [embed, new_embed]))

但是,最后一行將不會執行,因為embed變為未初始化的值。

我想在這里完成的工作是從文件中還原變量,並用新變量concat進行連接,即使[10,2]變量成為[15,2]變量,其中前10行來自存儲的變量。

我正在考慮將[ old_ebmed ]變量恢復為一個新變量,例如old_ebmed ,但是我找不到辦法。

任何幫助,將不勝感激。

我找到了一種將變量還原為具有不同名稱的varialbe的方法

import tensorflow as tf

sess = tf.InteractiveSession()

old_embed = tf.Variable(tf.constant(0.0, shape = [10, 2]))

restorer = tf.train.Saver({'embed': old_embed})
restorer.restore(sess, 'test/d.ckpt')

new_embed = tf.Variable(tf.random_uniform([5, 2], -1, 1))

init_new = tf.initialize_variables([new_embed])
sess.run(init_new)

embed = tf.Variable(tf.concat(0, [old_embed, new_embed]))
init_embed = tf.initialize_variables([embed])
sess.run(init_embed)

saver = tf.train.Saver({'embed': embed})
saver.save(sess, 'test/d.ckpt')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM