मैं आर केरस का उपयोग कर रहा हूँ। उदाहरण के लिए मैं एक मध्यवर्ती परत का आउटपुट प्राप्त कर सकता हूं:

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

जहां mymodel एक Keras मॉडल है। समस्या यह है कि लेयर_आउटपुट एक टेंसर है।

class(layer_output)

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

मैं लेयर_आउटपुट को एक आर ऑब्जेक्ट जैसे एरे या मैट्रिक्स में बदलना चाहता हूं, लेकिन मुझे ऐसा करने का कोई तरीका नहीं मिल रहा है। बहुत धन्यवाद अगर आप मुझे सलाह दे सकते हैं।

2
Garry 21 अक्टूबर 2018, 21:05

1 उत्तर

सबसे बढ़िया उत्तर

एक विकल्प एक नया मॉडल बनाना है जो केवल आपकी रुचि की परत को आउटपुट करेगा।

पहले मूल मॉडल बनाएं:

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 द्वारा लौटाए गए लेयर इंस्टेंस के बजाय एक वेक्टर, मैट्रिक्स या ऐरे को वापस करना चाहिए।

1
makeyourownmaker 21 अक्टूबर 2018, 20:57