【问题标题】:R Keras: Convert tensorflow tensor to R arrayR Keras:将张量流张量转换为R数组
【发布时间】:2018-10-21 18:05:34
【问题描述】:

我正在使用 R Keras。我可以通过例如执行来获得中间层的输出:

layer_output <- get_layer(mymodel, index=1)$output

其中 mymodel 是 Keras 模型。 问题是 layer_output 是一个张量。

class(layer_output)

    [1] "tensorflow.tensor" "tensorflow.python.framework.ops.Tensor"     
    [3] "tensorflow.python.framework.ops._TensorLike" "python.builtin.object"  

我想将 layer_output 转换为 R 对象,例如数组或矩阵,但我找不到方法。非常感谢您能给我建议。

【问题讨论】:

  • 这样的转换是不可能的,只有给个输入才能得到一层输出。你到底想对结果做什么?
  • 我想将结果用于集群应用程序。我认为 Makeyourownmaker 下面的回复给了我我想要的。

标签: r tensorflow keras


【解决方案1】:

一种选择是创建一个仅输出您感兴趣的层的新模型。

首先创建原始模型:

model <- ...  # create original model

然后创建新模型并使用 predict 得到输出:

layer_name <- 'my_layer'
intermediate_layer_model <- keras_model(inputs = model$input,
                                        outputs = get_layer(model, layer_name)$output)
intermediate_output <- predict(intermediate_layer_model, data)

根据您的模型,R keras predict 函数应返回向量、矩阵或数组 - 而不是 get_layer 返回的层实例。

【讨论】:

  • 啊哈!这似乎有效。我得到了我期望的形状。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-10-07
  • 1970-01-01
  • 2018-12-02
  • 2019-03-19
  • 2021-08-25
  • 2020-01-23
  • 2022-09-29
  • 2016-10-15
相关资源
最近更新 更多