R Keras:将张量流张量转换为R数组

时间:2018-10-21 18:05:35

标签: r tensorflow keras

我正在使用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对象,例如数组或矩阵,但是我找不到解决方法。非常感谢您能给我建议。

1 个答案:

答案 0 :(得分:0)

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

首先创建原始模型:

model <- ...  # create original model

然后创建新模型并使用预测获取输出:

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预测函数应返回向量,矩阵或数组-而不是get_layer返回的图层实例。