केरस में एक मॉडल को परिभाषित करने का एक उपयोगी तरीका है: कार्यात्मक एपीआई का उपयोग करना । कार्यात्मक एपीआई के साथ आप परतों के निर्देशित चक्रीय ग्राफ को परिभाषित कर सकते हैं, जो आपको पूरी तरह से मनमाना आर्किटेक्चर बनाने की अनुमति देता है। आपके उदाहरण को ध्यान में रखते हुए:
#A_data = np.zeros((1,30))
#A_labels = np.zeros((1,30))
#B_labels =np.zeros((1,30))
A1 = layers.Input(shape=(30,), name='A_input')
A2 = layers.Dense(8, activation='???')(A1)
A3 = layers.Dense(30, activation='???', name='A_output')(A2)
B2 = layers.Dense(40, activation='???')(A2)
B3 = layers.Dense(30, activation='???', name='B_output')(B2)
## define A
A = models.Model(inputs=A1, outputs=A3)
## define B
B = models.Model(inputs=A1, outputs=B3)
B.compile(optimizer='??',
loss={'B_output': '??'}
)
B.fit({'A_input': A_data},
{'B_output': B_labels},
epochs=??, batch_size=??)
तो यह बात है! आप इसके द्वारा परिणाम देख सकते हैं B.summary()
:
Layer (type) Output Shape Param
A_input (InputLayer) (None, 30) 0
_________________________________________________________________
dense_8 (Dense) (None, 8) 248
______________________________________________________________
dense_9 (Dense) (None, 40) 360
_________________________________________________________________
B_output (Dense) (None, 30) 1230