我正在使用cifar10_cnn.py并对其进行修改,以便可以生成自己的内核。 (尝试一个新的想法)。我的代码照常设置了Sequential,并编译了模型,然后使用显式python代码生成了CNN内核,并将其复制到模型中。接下来,我在单个图像上调用model.predict,效果很好。 喜欢...
print('layer_conv2d_2')
for img in x_train:
print('Image %d of %d' % (imgn, x_train.shape[0]))
img = np.expand_dims(img, axis=0)
# t1 is (32,32)
t1: tf.Tensor = layer_conv2d_1.output[0,:,:,0]
prt = keras.backend.print_tensor(t1, 'T1 is ')
a = model.predict(img)
t2: tf.Tensor = layer_conv2d_1.output[0,:,:,0]
prt = keras.backend.print_tensor (t2, 'T2 is ')
pass
print_tensor永远不会发生。在文档中有一条注释,必须稍后使用“ print_tensor的返回值”才能使print_tensor在计算图中执行。我试着将n = prt [0,0]放在那儿,但什么也没做,可能是因为从未使用过n。
如何强制变量被“使用”?
答案 0 :(得分:0)
好吧,经过对Tensorflow的大量研究和一般工作,我意识到这个问题实际上是在试图迫使Tensorflow进入程序范式。需要将Tensorflow视为一种延迟的执行图和功能语言。这不是C ++或C#风格的过程思维。