首页 > 解决方案 > TypeError:“NoneType”对象在我的 tensorflow 自定义训练循环中不可迭代

问题描述

我已经制作了自定义训练循环,当我训练我的模型 8 个 epoch 时,我得到了错误。

TypeError:“NoneType”对象不可迭代

带有错误日志的完整输出:

Epoch 000: Loss: 0.262, Accuracy: 91.380%
Epoch 001: Loss: 0.234, Accuracy: 91.320%
Epoch 002: Loss: 0.227, Accuracy: 92.120%
Epoch 003: Loss: 0.237, Accuracy: 91.820%
Epoch 004: Loss: 0.232, Accuracy: 92.400%
Epoch 005: Loss: 0.192, Accuracy: 93.780%
Epoch 006: Loss: 0.211, Accuracy: 93.280%
Epoch 007: Loss: 0.195, Accuracy: 94.100%
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-45-e6c924f8c071> in <module>()
      6                                                           optimizer_obj,
      7                                                           loss_obj,
----> 8                                                           grad)

TypeError: 'NoneType' object is not iterable

ps:代码很大,请看这里

标签: pythontensorflowmachine-learningkerasneural-network

解决方案


您不会在train_resnet函数中返回任何内容,但您正试图从中获取一些值:

train_loss_results, train_accuracy_results = train_resnet(resnet_model, 
                                                          8, 
                                                          train_dataset, 
                                                          optimizer_obj, 
                                                          loss_obj, 
                                                          grad)

只需return train_loss_results, train_loss_accuracy在末尾添加train_resnet


推荐阅读