我已经训练了一个回归模型,该模型可以近似计算方程的权重: Y = R + B + G 为此,我提供了R,B,G和Y的预定值作为训练数据,并且在训练了模型之后,该模型能够针对给定的R,B和G值成功地预测Y的值。具有3个输入的神经网络,具有2个神经元的1个密集层(隐藏层)和具有单个神经元的输出层(输出)。
hidden = tf.keras.layers.Dense(units=2, input_shape=[3])
output = tf.keras.layers.Dense(units=1)
但是,我需要实现相反的功能。即,我需要训练一个模型,该模型采用Y值并预测与该Y值相对应的R,B和G值。
我刚刚了解到,回归完全是关于单个输出的。因此,我无法想到解决方案及其实现之路。
请帮助。
(PS是否可以使用我已经训练的模型来执行此操作?我的意思是,一旦确定了R,B和G的权重,是否有可能操纵该模型以使用这些权重来映射Y到R,B和G?)
答案 0 :(得分:1)
这是一个使用张量流中的神经网络开始解决问题的示例。
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)