我使用tf.contrib.layers.fully_connected
在以下代码中创建图层。
library(tensorflow)
x <- tf$placeholder(tf$float32, shape(NULL, 784L))
logits <- tf$contrib$layers$fully_connected(x, 10L)
y <- tf$nn$softmax(logits)
我如何使用sess$run(W)
?
x <- tf$placeholder(tf$float32, shape(NULL, 784L))
W <- tf$Variable(tf$zeros(shape(784L, 10L)))
b <- tf$Variable(tf$zeros(shape(10L)))
y <- tf$nn$softmax(tf$matmul(x, W) + b)
注意:我使用TensorFlow for R,但这应该与TensorFlow for Python相同,方法是更改$
的{{1}}。
答案 0 :(得分:1)
您可以使用tf$global_variables()
获取所有全局变量的列表。不是一个理想的解决方案(因为它检索一个未命名的变量列表),但它应该可以满足您的需求。下面的可重复示例
library(tensorflow)
datasets <- tf$contrib$learn$datasets
mnist <- datasets$mnist$read_data_sets("MNIST-data", one_hot = TRUE)
x <- tf$placeholder(tf$float32, shape(NULL, 784L))
logits <- tf$contrib$layers$fully_connected(x, 10L)
y <- tf$nn$softmax(logits)
y_ <- tf$placeholder(tf$float32, shape(NULL,10L))
cross_entropy <- tf$reduce_mean(-tf$reduce_sum(y_ * tf$log(y), reduction_indices=1L))
train_step <- tf$train$GradientDescentOptimizer(0.5)$minimize(cross_entropy)
sess <- tf$Session()
sess$run(tf$global_variables_initializer())
for (i in 1:1000) {
batches <- mnist$train$next_batch(100L)
batch_xs <- batches[[1]]
batch_ys <- batches[[2]]
sess$run(train_step,
feed_dict = dict(x = batch_xs, y_ = batch_ys))
}
lst.variables <- sess$run(tf$global_variables())
str(lst.variables)
答案 1 :(得分:0)
您将张量的名称传递给run
函数。您应该检查图形以查看从函数添加到图形中的张量的名称。