PaddlePaddle'il on andmete kordamisel viga: TypeError: objekt 'function' pole korduv
Paddlepaddle Has An Error When Iterating Over Data
-
reader
,Data reading
-
Probleemi kirjeldus: lugeja abil treeningandmete lugemisel ilmneb tõrge ja veatüüp TypeError: ‘function’ pole korduv.
-
Veateade:
TypeError Traceback (most recent call last) in 2 for pass_id in range(1): 3 # training ----> 4 for batch_id, data in enumerate(train_reader): 5 train_cost, train_acc = exe.run(program=fluid.default_main_program(), 6 feed=feeder.feed(data), TypeError: 'function' object is not iterable
- Probleemi kordumine: andmete lugemisel silmus edastage
paddle.batch()
Määratud lugeja kordab andmeid,enumerate()
Kasutatavad muutujad on määratletud. Funktsiooni kutsumisel teatatakse veast ja tõrkekood on järgmine:
for batch_id, data in enumerate(train_reader): train_cost, train_acc = exe.run(program=fluid.default_main_program(), feed=feeder.feed(data), fetch_list=[avg_cost, acc])
- Probleemide lahendamine: sama
paddle.batch()
Hangi funktsioon, mis loeb andmeid, tagastusväärtus on lugeja, ülaltoodud tõrge on tingitud sellest, et otsetrain_reader
Muutuja, see muutuja viitab funktsioonile, seega peate lisama sulgude selle funktsiooni lugeja tagastusväärtuse saamiseks.
for batch_id, data in enumerate(train_reader()): train_cost, train_acc = exe.run(program=fluid.default_main_program(), feed=feeder.feed(data), fetch_list=[avg_cost, acc])
Kui sulge ei kasutata, nimetatakse Pythoni muutujate puhul funktsiooni ennast, mis on funktsiooni objekt, ja see ei pea ootama funktsiooni lõpuleviimist. Sulgude kasutamisel kutsutakse funktsiooni täitmise tulemus ja nõutakse funktsiooni täitmise lõpuleviimist.