我发现Tensorflow提供了scatter_update()为0维度中的张量切片赋值.例如,如果张量T是三维的,我可以赋值v[1, :, :]给T[i, :, :].
a = tf.Variable(tf.zeros([10,36,36]))
value = np.ones([1,36,36])
d = tf.scatter_update(a,[0],value)
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print a.eval()
sess.run(d)
print a.eval()
Run Code Online (Sandbox Code Playgroud)
但是如何赋值v[1,1,:]给T[i,j,:]?
a = tf.Variable(tf.zeros([10,36,36]))
value1 = np.random.randn(1,1,36)
e = tf.scatter_update(a,[0],value1) #Error
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print a.eval()
sess.rum(e)
print a.eval()
Run Code Online (Sandbox Code Playgroud)
是否有TF提供的其他功能或简单的方法?
我想让我的模型的输入图像(张量)向上/向下或向右/向左移动然后再填充.
例如,如果原始图像是3x3,如下所示,
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
然后,如果我转向左边,
2 3 0
5 6 0
8 9 0
Run Code Online (Sandbox Code Playgroud)
我发现在Tensorflow中有一个图像旋转功能,但我找不到翻译或移位.如果有内置功能,请告诉我,或建议实施方式.
我想在外部文件(如txt)中写入所有标志及其值.如何自动获取里面的所有内容tf.flag?有没有内置功能?或者是否有简单的方法,例如通过使用循环?
例如,
tf.flags.DEFINE_string("device","/gpu:0", "select device")
tf.flags.DEFINE_integer("rnn_size","64", "number of units")
Run Code Online (Sandbox Code Playgroud)
我想得到
device /gpu:0
rnn_size 64
Run Code Online (Sandbox Code Playgroud) 我正在尝试从检查点文件中恢复一些变量,如果相同的变量名在当前模型中.
我发现Tensorfow Github有一些方法
所以我想做的是检查检查点文件中的变量名称,has_tensor("variable.name")如下所示,
...
reader = tf.train.NewCheckpointReader(ckpt_path)
for v in tf.trainable_variables():
print v.name
if reader.has_tensor(v.name):
print 'has tensor'
...
Run Code Online (Sandbox Code Playgroud)
但我发现v.name返回变量name和colon+number.例如,我有变量名W_o,b_o然后v.name返回W_o:0, b_o:0.
但是reader.has_tensor()要求name没有colon和number作为W_o, b_o.
我的问题是:如何去除colon并number在变量名,以读取变量结束了吗?
有没有更好的方法来恢复这些变量?
我想让我的输入图像(张量)在每批中随机向上/向下或向右/向左移动。
例如,我有一批大小为 的灰度图像[10, 48, 64, 1]。
如果有一张图片,我知道我可以使用 tf.pad 和 tf.slice(或其他内置函数)
但我想通过一次操作将随机移位应用于 10 个不同的图像。
是否可以?还是应该使用诸如 tf.scan 之类的循环?