Ich versuche, ein Multi-Stream-Modell mit tflearn zu definieren, so dass es zwei Kopien der gleichen Architektur gibt (oder Sie können es sich als Ensemble-Modell vorstellen), die ich mit anderen füttere Ernten des gleichen Bildes, aber nicht sicher, wie ich gehen und das mit tflearn umsetzen würde.tflearn/Tensorfluss | Multistream-/Multiskalen-/Ensemble-Modelldefinition
Ich habe im Grunde diese Daten:
X_train1, X_test1, y_train1, y_test1 : Dataset 1 (16images x 299 x 299px x 3ch)
X_train2, X_test2, y_train2, y_test2 : Dataset 2 (16images x 299 x 299px x 3ch)
Und ich habe dies bisher auf der Grundlage der logical.py
example (vereinfachte Code) erstellt: durch Verketten
netIn1 = tflearn.input_data(shape=[None, 299, 299, 3]
net1 = tflearn.conv_2d(netIn1, 16, 3, regularizer='L2', weight_decay=0.0001)
...
net1 = tflearn.fully_connected(net1, nbClasses, activation='sigmoid')
net1 = tflearn.regression(net1, optimizer=adam, loss='binary_crossentropy')
netIn2 = tflearn.input_data(shape=[None, 299, 299, 3]
net2 = tflearn.conv_2d(netIn2, 16, 3, regularizer='L2', weight_decay=0.0001)
...
net2 = tflearn.fully_connected(net2, nbClasses, activation='sigmoid')
net2 = tflearn.regression(net2, optimizer=adam, loss='binary_crossentropy')
Und dann verschmelzen die beiden Netzwerke:
net = tflearn.merge([net1, net2], mode = 'concat', axis = 1)
Und fangen Sie an, wie folgt zu trainieren:
# Training
model = tflearn.DNN(net, checkpoint_path='model',
max_checkpoints=10, tensorboard_verbose=3,
clip_gradients=0.)
model.fit([X1,X2], [Y1,Y2], validation_set=([testX1, testX2], [testY1,testY2]))
Also jetzt ist mein Problem, wie parse ich die Eingänge am Anfang des Netzwerks? Wie teile ich die X1 zu Net1 und X2 zu Net2?