Saat ini saya memiliki dua jaringan f dan g, yang pertama dilatih pada tugas 1 dan yang kedua pada tugas 2. Saya memberi label data saya sebagai milik tugas 1 atau tugas 2. Bagaimana saya bisa membangun arsitektur khusus (yang dapat dilatih) berikut:

X -> putuskan apakah 1 atau 2 -> lolos ke f atau g yang sesuai?

Saya belum pernah menggunakan arsitektur bercabang seperti itu sebelumnya ...

1
AIM_BLB 29 Mei 2020, 13:31

1 menjawab

Jawaban Terbaik

Saya mencoba mendemonstrasikan apa yang Anda butuhkan dengan Sample Code yang ditunjukkan di bawah ini. Tolong beri tahu saya jika ini bukan yang Anda cari dan berikan detail lebih lanjut, dan saya akan dengan senang hati membantu Anda.

Sesuai pertanyaan, kami mencoba mencapai 2 Tugas, Task 1 --> Regression (Jaringan Neural Feedforward) dan Task 2 --> CNN. Kami akan membentuk 2 Dataset dari Dataset yang ada berdasarkan Label, apakah itu milik Task 1 --> Data_T1 dan Task 2 --> Data_T2.

Kemudian dengan menggunakan API Fungsional, kita bisa melewati Multiple Inputs dan kita bisa mendapatkan Multiple Outputs.

Kode ditunjukkan di bawah ini:

from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Conv2D, Dense, Flatten
import pandas as pd

F1 = [1,2,3,4,5,6,7,8,9,10]
F2 = [1,2,3,4,5,6,7,8,9,10]
F3 = [1,2,3,4,5,6,7,8,9,10]
Task = ['t1', 't1', 't2', 't1', 't2', 't2', 't2', 't1', 't1', 't2']

Dict = {'F1': F1, 'F2':F2, 'F3':F3, 'Task':Task} # Column Task tells us whether the Data belongs to Task1 or Task2

Data = pd.DataFrame(Dict) #Create a Dummy Data Frame

Data_T1 = Data[Data['Task']=='t1']
Data_T1 = Data_T1.drop(columns = ['Task'])

Data_T2 = Data[Data['Task']=='t2']
Data_T2 = Data_T2.drop(columns = ['Task'])

Input1 = ...
Input2 = ...

Number_Of_Classes = 3
# Regression Model
D1 = Dense(10, activation = 'relu')(Input1)
Out_Task1 = Dense(1, activation = 'linear') 
# CNN Model
Conv1 = Conv2D(16, (3,3), activation = 'relu')(Input2)
Conv2 = Conv2D(32, (3,3, activation = 'relu'))(Conv1)
Flatten = Flatten()(Conv2)
D2_1 = Dense(10, activation = 'relu')
Out_Task2 = Dense(Number_Of_Classes, activation = 'softmax')

model = Model(inputs = [Input1, Input2], outputs = [Out_Task1, Out_Task2])

model.compile....

model.fit([Data_T1, Data_T2], .....)
1
Wai Ha Lee 1 Juni 2020, 17:47