当前位置: 首页 > 面试题库 >

Keras中的多个输出

庾才
2023-03-14
问题内容

给定一个预测变量向量时,我有一个问题要处理两个输出。假设预测变量矢量看起来像x1, y1, att1, att2, ..., attn,它x1, y1是坐标,并且att's是附加到出现x1, y1坐标的其他属性。基于这个预测变量集,我想进行预测x2, y2。这是一个时间序列问题,我正在尝试使用多元回归解决。我的问题是如何设置keras,这可以在最后一层为我提供2个输出。


问题答案:
from keras.models import Model
from keras.layers import *

#inp is a "tensor", that can be passed when calling other layers to produce an output 
inp = Input((10,)) #supposing you have ten numeric values as input


#here, SomeLayer() is defining a layer, 
#and calling it with (inp) produces the output tensor x
x = SomeLayer(blablabla)(inp) 
x = SomeOtherLayer(blablabla)(x) #here, I just replace x, because this intermediate output is not interesting to keep


#here, I want to keep the two different outputs for defining the model
#notice that both left and right are called with the same input x, creating a fork
out1 = LeftSideLastLayer(balbalba)(x)    
out2 = RightSideLastLayer(banblabala)(x)


#here, you define which path you will follow in the graph you've drawn with layers
#notice the two outputs passed in a list, telling the model I want it to have two outputs.
model = Model(inp, [out1,out2])
model.compile(optimizer = ...., loss = ....) #loss can be one for both sides or a list with different loss functions for out1 and out2

model.fit(inputData,[outputYLeft, outputYRight], epochs=..., batch_size=...)


 类似资料:
  • 问题内容: 我正在尝试合并两个模型的输出,并使用keras顺序模型将它们作为第三模型的输入。型号1: 型号1: 型号3: 直到这里,我的理解是,来自两个模型的输出x和y被合并并作为第三模型的输入。但是当我全都喜欢的时候 in1和in2是尺寸为10000 * 750的两个numpy ndarray,其中包含我的训练数据,而np_res_array是相应的目标。 这给了我错误,因为“列表”对象没有属性

  • 在模型中添加LSTM层之前,我不确定是否需要添加密集输入层。例如,使用以下模型: LSTM层是否为输入层,密集层是否为输出层(即无隐藏层)?或者Keras是否创建了一个输入层,这意味着LSTM层将是一个隐藏层?

  • 我一直在尝试使用Keras构建一个多输入模型。我来自使用顺序模型,并且只有一个相当直接的输入。我一直在查看StackOverflow上的留档(https://keras.io/getting-started/functional-api-guide/)和一些答案(如何在Keras 2.0中“合并”顺序模型?)。基本上,我想要的是让两个输入训练一个模型。一个输入是一段文本,另一个是从该文本中提取的一

  • 问题内容: 在具有功能API的Keras模型中,我需要调用fit_generator来使用ImageDataGenerator训练增强图像数据。问题是我的模型有两个输出:我要预测的掩码和一个二进制值,显然我只想增加输入和掩码输出,而不是二进制值。我该如何实现? 问题答案: 下面的示例可能是不言自明的!“虚拟”模型采用1个输入(图像),并输出2个值。该模型为每个输出计算MSE。 下面的函数生成批次以

  • 我不明白为什么通道维度不包含在Keras中con2D层的输出维度中。 我有以下型号 我的问题末尾给出了模型摘要。输入层获取宽度为128、高度为128的RGB图像。第一个conv2D层告诉我输出维度是(None、61、61、24)。我使用的内核大小是(8,8),跨步是(2,2),没有填充。值61=下限((128-8 2 x 0)/2 1)和24(内核/过滤器的数量)是有意义的。但为什么维度中不包括不

  • 我用python用800个样本训练了一个CNN神经网络,并用60个样本进行了测试。输出精度是50,现在每次我使用模型。预测它会给我同样的结果。 我用了keras和tensorflow。图像为224x224像素,每个像素分为两类。我对神经网络知之甚少,这是我第一次尝试把它做得这么大。我听说它可能太合适了,或者我需要一个更重要的图层,或者我的批量大小/年代/学习率是错误的。 编辑1:种子对网络培训有何