自定义数据生成器如何返回组成的标签

我正在实现tf.keras.utils.Sequence的数据生成器子类。其 getitem 返回一个包含数据的组合标签,例如

def __getitem__(self,idx):
    ......
    return image_batch,[label_batch_part1,label_batch_part2]

label_batch_part1和label_batch_part2具有不同的形状。 我将生成器实例(train_gen)传递给了tf.keras的model.fit_generator,例如

model.compile(optimizer = Adam(lr = 1e-4),loss = my_cost_func,metrics = ['accuracy'])
model.fit_generator(train_gen,steps_per_epoch=50,epochs=100,callbacks=[model_checkpoint])

我还有一个自定义丢失功能,例如

def my_cost_func(y_true,y_pred,**kwargs):
    y_true_part1,y_true_part2 = y_true[0],y_true[1]
    cost = y_true_part1 - op(y_true_part2,y_pred)
    ... ...

我希望y_true_part1是label_batch_part1,而y_true_part2是label_batch_part2。

到目前为止,我遇到了运行时错误:

  

文件“ /home/chris/hdd2nd/dev/mlenv/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_utils.py”,行346,在standardize_input_data中   ValueError:检查模型目标时出错:传递给模型的Numpy数组列表不是模型预期的大小。预计会看到1个数组,但获得了以下2个数组的列表

我想知道这样做的正确方法是什么?

谢谢

yxj366 回答:自定义数据生成器如何返回组成的标签

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3169492.html

大家都在问