Ich versuche, ein siamesisches Netzwerk mit Rstudio Keras-Paket zu implementieren. Das Netzwerk, das ich versuche zu implementieren, ist das gleiche Netzwerk, das Sie in this post sehen können.Siamesisches Netzwerk mit Rstudio Keras
Also, im Grunde portiere ich den Code auf R und mit Rstudio Keras Implementierung. Bisher mein Code sieht wie folgt aus:
library(keras)
inputShape <- c(105, 105, 1)
leftInput <- layer_input(inputShape)
rightInput <- layer_input(inputShape)
model<- keras_model_sequential()
model %>%
layer_conv_2d(filter=64,
kernel_size=c(10,10),
activation = "relu",
input_shape=inputShape,
kernel_initializer = initializer_random_normal(0, 1e-2),
kernel_regularizer = regularizer_l2(2e-4)) %>%
layer_max_pooling_2d() %>%
layer_conv_2d(filter=128,
kernel_size=c(7,7),
activation = "relu",
kernel_initializer = initializer_random_normal(0, 1e-2),
kernel_regularizer = regularizer_l2(2e-4),
bias_initializer = initializer_random_normal(0.5, 1e-2)) %>%
layer_max_pooling_2d() %>%
layer_conv_2d(filter=128,
kernel_size=c(4,4),
activation = "relu",
kernel_initializer = initializer_random_normal(0, 1e-2),
kernel_regularizer = regularizer_l2(2e-4),
bias_initializer = initializer_random_normal(0.5, 1e-2)) %>%
layer_max_pooling_2d() %>%
layer_conv_2d(filter=256,
kernel_size=c(4,4),
activation = "relu",
kernel_initializer = initializer_random_normal(0, 1e-2),
kernel_regularizer = regularizer_l2(2e-4),
bias_initializer = initializer_random_normal(0.5, 1e-2)) %>%
layer_flatten() %>%
layer_dense(4096,
activation = "sigmoid",
kernel_initializer = initializer_random_normal(0, 1e-2),
kernel_regularizer = regularizer_l2(1e-3),
bias_initializer = initializer_random_normal(0.5, 1e-2))
encoded_left <- leftInput %>% model
encoded_right <- rightInput %>% model
Wenn jedoch die letzten beiden Zeilen ausgeführt wird, erhalte ich die folgende Fehlermeldung:
Error in py_call_impl(callable, dots$args, dots$keywords) :
AttributeError: 'Model' object has no attribute '_losses'
Detailed traceback:
File "/home/rstudio/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/tensorflow/contrib/keras/python/keras/engine/topology.py", line 432, in __call__
output = super(Layer, self).__call__(inputs, **kwargs)
File "/home/rstudio/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/tensorflow/python/layers/base.py", line 441, in __call__
outputs = self.call(inputs, *args, **kwargs)
File "/home/rstudio/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/tensorflow/contrib/keras/python/keras/models.py", line 560, in call
return self.model.call(inputs, mask)
File "/home/rstudio/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/tensorflow/contrib/keras/python/keras/engine/topology.py", line 1743, in call
output_tensors, _, _ = self.run_internal_graph(inputs, masks)
File "/home/rstudio/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/tensorflow/contrib/keras/python
Ich habe bei ähnlichen Implementierungen und alle Fragen über Stackoverflow suchen, aber ich konnte keine Lösung finden. Ich denke, ich könnte etwas wirklich Offensichtliches vermissen.
Irgendwelche Ideen, um das zu lösen?
Das läuft in meinem Computer gut. Versuchen Sie, das R-Keras-Paket und Ihre Tensorflow-Installation zu aktualisieren. –
Oh schnappen. Danke, dass Sie sich die Zeit genommen haben, es zu testen. Obwohl meine Installation ziemlich neu ist, werde ich versuchen zu aktualisieren und zu sehen, ob ich es dann ausführen kann :) –
Gelöst! Danke, Daniel. Wenn Sie Ihren Vorschlag selbst als Antwort weiterleiten können, kann ich ihn als Lösung markieren. Ich habe noch wenig Ansehen, aber ich sollte das schaffen ... :) –