由于在使用Tensorflow训练模型之前需要为数据编写一些预处理,因此需要对tensor进行一些修改。但是,我不知道如何像使用numpy那样修改tensor中的值。
最好的方法是它能够直接修改tensor。然而,在当前版本的Tensorflow中,这似乎是不可能的。另一种方法是将进程的tensor更改为ndarray,然后使用tf.convert_to_tensor重新更改。
关键是如何将tensor更改为ndarray。
1) tf.contrib.util.make_ndarray(tensor):
https://www.tensorflow.org/versions/r0.8/api_docs/python/contrib.util.html#make_ndarray
根据文档,这似乎是最简单的方法,但是在当前版本的Tensorflow中找不到这个函数。其次,它的输入是TensorProto,而不是tensor。
2) 使用a.eval()将a复制到另一个ndarray
然而,它只能在笔记本中使用tf.InteractiveSession()。
下面是一个带有代码的简单例子。这段代码的目的是使tfc在处理后具有与npc相同的输出。
提示
你应该认为tfc和npc彼此独立。这就满足了这样的情况:首先,检索到的训练数据是tensor格式的,带有^{}。
源代码import numpy as np
import tensorflow as tf
tf.InteractiveSession()
tfc = tf.constant([[1.,2.],[3.,4.]])
npc = np.array([[1.,2.],[3.,