目前可以指定与特定操作的tf.device(...)函数一起使用哪个CPU或GPU,但是在哪里可以指定CPU 的核心?
我相信我很难理解图形在张量流中如何工作以及如何访问它们.我的直觉是'with graph:'下的线条将图形形成为单个实体.因此,我决定创建一个在实例化时构建图形的类,并且拥有一个运行图形的函数,如下所示;
class Graph(object):
#To build the graph when instantiated
def __init__(self, parameters ):
self.graph = tf.Graph()
with self.graph.as_default():
...
prediction = ...
cost = ...
optimizer = ...
...
# To launch the graph
def launchG(self, inputs):
with tf.Session(graph=self.graph) as sess:
...
sess.run(optimizer, feed_dict)
loss = sess.run(cost, feed_dict)
...
return variables
Run Code Online (Sandbox Code Playgroud)
接下来的步骤是创建一个主文件,它将汇集参数以传递给类,构建图形然后运行它;
#Main file
...
parameters_dict = { 'n_input': 28, 'learnRate': 0.001, ... }
#Building graph
G = Graph(parameters_dict)
P = G.launchG(Input)
...
Run Code Online (Sandbox Code Playgroud)
这对我来说非常优雅,但它显然不起作用(显然).实际上,似乎launchG函数无法访问图中定义的节点,这给出了我的错误;
---> 26 sess.run(optimizer, feed_dict)
NameError: …
Run Code Online (Sandbox Code Playgroud) 我目前有2个对应于坐标(X,Y)的数组,以及第三个对应于2d空间中此点值的数组。它是这样编码的,而不是矩阵,因为它是一个相当稀疏的矩阵(并非每个点都具有一个值)。现在,我想重建矩阵以便使用matplotlib.imshow()绘制值。
到目前为止,我最简单的方法是执行for循环,如下所示:
X = [1, 1, 3, 5];
Y = [2, 2, 3, 7];
Z = [0.3, -0.5, 1, 1];
matrix = np.zeros([10,10])
for i in range(len(Z)):
matrix[X[i],Y[i]] = Z[i]
Run Code Online (Sandbox Code Playgroud)
我的意思是,这并不可怕,但我担心会发生很多事情。是否有一个函数将第一和第二输入分别作为第一和第二坐标,而第三输入作为这些坐标的值?还是会有类似的东西?
graph ×2
python ×2
tensorflow ×2
arrays ×1
class ×1
cpu ×1
device ×1
matplotlib ×1
matrix ×1
session ×1