繁体   English   中英

如何解释sess.run()正在做什么?

[英]How to interpret what sess.run() is doing?

我正在练习Gatys等人的神经风格转移算法。 (2015)( https://arxiv.org/abs/1508.06576 )使用tensorflow。 在这里,我很难理解sess.run()正在做什么,这在代码中出现了几次。

如本文所示,必须分别使用输入内容图像和输入样式图像来计算生成的图像。


首先计算内容成本,

tf.reset_default_graph()

sess = tf.InteractiveSession()  

# load the weights of vgg to form a model
model = load_vgg_model("imagenet-vgg-verydeep-19.mat")

sess.run(model['input'].assign(content_image))

out = model['conv4_2']

a_Content = sess.run(out)

a_Generate = out

# Compute the content cost
J_content = compute_content_cost(a_Content, a_Generate)

为简单起见,省略了J_style的计算

接着,

J = total_cost(J_content, J_style, alpha=10, beta=40)

optimizer = tf.train.AdamOptimizer(2.0)

train_step = optimizer.minimize(J)

然后定义model_nn(),

def model_nn(sess, input_image, num_iterations = 200):

    sess.run(tf.global_variables_initializer())

    model['input'].assign(input_image)

    for i in range(num_iterations):
        sess.run(train_step)

        generated_image = sess.run(model['input'])


        if i%20 == 0:
            Jt, Jc, Js = sess.run([J, J_content, J_style])

最后,运行model_nn()来训练网络model_nn(sess, generated_image)


这是我的问题
首先sess.run(out)out之间有什么区别?
第二 ,为什么model['input'].assign(content_image)放在sess.run(model['input'].assign(content_image))中,但是在sess.run()稍后与model_nn()分开?
第三 ,如何指定sess.run(model['input'])生成generated_image?

如果有任何歧义,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM