首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TensorFlow:如何交换图的输入和权重的卷?

TensorFlow:如何交换图的输入和权重的卷?
EN

Stack Overflow用户
提问于 2016-12-09 16:05:53
回答 1查看 229关注 0票数 0

TensorFlow中,是否有一种简单的方法来获取Graph对象,并将其所有(或部分) placeholders转换为variables,以及将所有(或部分) variables和Tensors转换为constants (或placeholders)?

换句话说,我想采取一个(经过训练的)神经网络,保留它的计算图结构,但优化占位符,同时保持权重不变。

编辑

作为一个例子,给出了简单的这里神经网络

代码语言:javascript
运行
复制
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.matmul(x, W) + b
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

我想把它转化为:

代码语言:javascript
运行
复制
x = tf.Variable(tf.float32, [None, 784])
W = tf.constant([values of trained weights],shape=[784, 10])
b = tf.constant(,shape=[10])
y = tf.matmul(x, W) + b
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

其中[values of trained weights]是训练原始网络后的Wb的值。我感兴趣的是,是否有一种简单、自动的方法来执行这样的转换。(注意:我没有运行上面的示例,因此它可能包含错误)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-10 19:30:02

我认为答案是“不,没有容易的办法”。即使你的简单例子也有点复杂。您有变量的占位符,常量的变量,占位符的占位符。当占位符只转换一段时间时,一些自动方法如何知道何时转换为什么?听起来你得自己去做些什么。首先,您至少可以使用tf.trainable_variables()获得一个变量列表。x.assign()返回一个op,您可以用来为变量赋值。也许这些会在某种程度上帮助我们找到一个更自动的解决方案。

至于“我有一个类,可能的输入是什么”的一般想法,您可能需要检查概率编程。听起来很接近你的目标。对于这些,您有一堆数据/标签,并编写了一个生成标签的模型。该语言为您的模型构造了一个取样器,您可以就模型的不同部分提出问题,类似于您的问题:“我有类,输入必须是什么?”

如果您感兴趣,这里有一个介绍:https://probmods.org/。听起来https://github.com/blei-lab/edward可能也在这个区域。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41064419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档