我有一些autoencoder
。该模型现在并不重要。假设该模型将一些图像作为输入并输出重建图像。训练结束后,我希望看到一个张量对输出的影响。此外,图像通过autoencoder
输入FIFOQueue
。因此,在运行以下代码时:
reconstructed_image = sess.run([deconv_image], feed_dict={mu:my_vector})
其中deconv_image
是模型的输出tensor
,而mu
是模型中隐藏的张量;将使用Queue
中的图像自动提供模型。
我的问题是:mu
内的值是否应该被来自输入图像的任何内容所取代,或者它采用我使用feed_dict
参数提供的向量。
非常感谢任何帮助!!
答案 0 :(得分:0)
当运行最终张量时,即评估图的最后张量时,它将运行它所依赖的所有张量。因此,如果我们y3
操作取决于y2
而y2
取决于y1
,那么在图表中运行最终张量将导致y1
成为y2
首先运行,然后y1
在从y2
获取输入后进行评估,最后y3
的输出将输入y1 -> y2 -> y3
。此图表可能如下所示:y3
另一方面,我可以通过使用feed_dict
参数直接输入其输入来运行(求值)y2
。在这种情况下,会评估y1
和import tensorflow as tf
import numpy as np
x = np.array([1.0, 2.0, 3.0])
x_var = tf.Variable(x, dtype=tf.float32)
y1 = tf.square(x_var)
y2 = tf.subtract(y1, tf.constant(1.0))
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(y2)) # Output: [ 0. 3. 8.]
print(sess.run(y2, feed_dict={y1: [1.0, 1.0, 1.0]}))# Output: [ 0. 0. 0.]
。
例如:
unsigned char** GeneratePalette()
{
unsigned char red[256];
unsigned char green[256];
unsigned char blue[256];
for(int value = 0; value < 256; value++)
{
if(value < 30)
{
red[value] = 0;
green[value] = 255;
blue[value] = 0;
}
else
{
red[value] = 0;
green[value] = 0;
blue[value] = 255;
}
}
unsigned char* table[3] = { red, green, blue };
return table;
}
void Test()
{
unsigned char** palette = GeneratePalette();
IppiSize srcSize = { 2,1 };
float src[2] = { 54, 19 };
unsigned char truncated[2];
IPPCALL(ippiConvert_32f8u_C1R)(src, srcSize.width * sizeof(float), truncated, srcSize.width * sizeof(unsigned char), srcSize, ippRndZero);
unsigned char copied[6] = {0};
IPPCALL(ippiGrayToRGB_8u_C1C3R)(truncated, srcSize.width * sizeof(unsigned char), copied, srcSize.width * sizeof(unsigned char) * 3, srcSize);
unsigned char dest[6];
IPPCALL(ippiLUTPalette_8u_C3R)(copied, 6, dest, 6, srcSize, palette, 8);
}
int main()
{
Test();
return 0;
}