Ўстаноўка вагаў класа для катэгарыяльных пазнак у Keras з дапамогай генератара

Я працую на з незбалансаваным наборам дадзеных у Keras, і хацеў бы даць больш высокі вага для узораў з майго класа меншасці. <Код> прыдатны() <код /> функцыя мае добры sample_weight аргумент, аднак з-за памеру маіх дадзеных я павінен выкарыстоўваць fit_generator() .

fit_generator() has a class_weight argument, which seems useful for this purpose and is already discussed in Another question. However, in this case the labels are not one-hot-encoded/categorical and I could not find whether using class_weight also allows for categorical data.

Можна выкарыстоўваць class_weight аргумент для адной гарачых кадуюцца/катэгарычных этыкетак, і калі так, то як? Ці я павінен звяртацца да карыстацкай ўзважанай функцыі страт?

2

1 адказы

Для катэгарыяльных дадзеных, то лепш выкарыстаць sample_weight замест class_weight аргументу. Гэта можа быць зроблена, проста даючы усе ўзоры канкрэтнага класа аднолькавай вагі. <Код> sample_weight працуе для катэгарыяльных дадзеных, так як ён прымае Numpy масіў у якасці значэння, у адрозненне ад слоўніка (які не будзе працаваць для катэгарыяльных метак класа) у выпадку class_weight .

See: Keras sequential model methods

<Р> Вы можаце альбо перадаць плоскі (1D) Numpy масіў з той жа даўжыні,   ўваходныя выбаркі (1: 1 адлюстраванне паміж вагамі і узораў), або ў   выпадак часавых дадзеных, вы можаце перадаць 2D масіў формы (ўзоры,   sequence_length), каб прымяніць розны вага для кожнага часовага кроку ад   кожны ўзор. У гэтым выпадку вы павінны пераканацца ў тым, каб паказаць   sample_weight_mode = "часовым" у кампіляцыі ().

The other way, as you mentioned is using custom weighted loss function. A detailed discussion on it can be found here.

1
дададзена
Для вялікага аб'ёму дадзеных, вы можаце выкарыстоўваць train_on_batch , які мае sample_weight , замест fit_generator . См гэта спасылка ад Keras для атрымання больш падрабязнай інфармацыі.
дададзена аўтар Janki Mehta, крыніца
Выкарыстанне sample_weight сапраўды будзе добрае рашэнне, якое мае fit_generator функцыя, на жаль, не падае гэтую магчымасць.
дададзена аўтар DGIB, крыніца