Как обучить модель регрессии для одного входа и нескольких выходов? - PullRequest
0 голосов
/ 21 сентября 2019

Я обучил регрессионную модель, которая аппроксимирует весовые коэффициенты для уравнения: Y = R + B + G Для этого я привожу заранее определенные значения R, B и G и Y в качестве обученияДанные и после обучения модели, модель успешно в состоянии предсказать значение Y для заданных значений R, B и G. Я использовал нейронную сеть с 3 входами, 1 плотный слой (скрытый слой) с 2 нейронами и выходнойслой (выход) с одним нейроном.

    hidden = tf.keras.layers.Dense(units=2, input_shape=[3])
    output = tf.keras.layers.Dense(units=1)

Но мне нужно реализовать обратное.то есть мне нужно обучить модель, которая принимает значение Y и прогнозирует значения R, B и G, соответствующие этому значению Y. Я только что узнал, что регрессия - это всего лишь один выход.Поэтому я не могу придумать решение и путь к нему.Пожалуйста, помогите.
(PS Можно ли использовать модель, которую я уже обучил, чтобы сделать это? Я имею в виду, когда весы были определены для R, B и G, можно ли манипулировать моделью дляиспользуйте эти веса для отображения Y в R, B и G?)

1 Ответ

1 голос
/ 21 сентября 2019

Вот пример, чтобы начать решение вашей проблемы с помощью нейронной сети в tenorflow.

import numpy as np
from tensorflow.python.keras.layers import Input, Dense
from tensorflow.python.keras.models import Model

X=np.random.random(size=(100,1))
y=np.random.randint(0,100,size=(100,3)).astype(float)   #Regression

input1 = Input(shape=(1,))
l1 = Dense(10, activation='relu')(input1)
l2 = Dense(50, activation='relu')(l1)
l3 = Dense(50, activation='relu')(l2)
out = Dense(3)(l3)

model = Model(inputs=input1, outputs=[out])
model.compile(
    optimizer='adam',
    loss=['mean_squared_error']
    )

history = model.fit(X, [y], epochs=10, batch_size=64)
...