【问题标题】:TypeError: 'NoneType' object is not subscriptable when I train a CNN modelTypeError:当我训练 CNN 模型时,“NoneType”对象不可下标
【发布时间】:2020-04-08 20:02:38
【问题描述】:

我是一个初学者,正在使用 CNN 进行图像分类,我有一个回调函数,如下所示;

class Metrics(Callback):
    def on_train_begin(self, logs = {}):
        self.val_kappas = []

    def on_epoch_end(self, epoch, logs = {}):
        X_val, y_val = self.validation_data[:2]
        y_val = y_val.sum(axis = 1) - 1

        y_pred = self.model.predict(X_val) > 0.5
        y_pred = y_pred.astype(int).sum(axis = 1) - 1

        _val_kappa = cohen_kappa_score(
            y_val,
            y_pred, 
            weights = 'quadratic'
        )

        self.val_kappas.append(_val_kappa)

        print(f"val_kappa: {_val_kappa:.4f}")

        if _val_kappa == max(self.val_kappas):
            print("Validation Kappa has improved. Saving model.")
            self.model.save('/path_to/model.h5')

        return

当我训练模型时;

kappa_metrics = Metrics()

history = model.fit(
    data_generator,
    steps_per_epoch = x_train.shape[0] / BATCH_SIZE,
    epochs = 15,
    validation_data = (x_val, y_val),
    callbacks = [kappa_metrics]
)

我收到以下错误;

不幸的是,我不明白我做错了什么。请注意,我是 CNN 和 Python 的初学者。

【问题讨论】:

    标签: python python-3.x list conv-neural-network


    【解决方案1】:

    我使用以下链接解决了这个问题。如果有人对此感兴趣,我会在这里发布。

    https://github.com/keras-team/keras/issues/10472
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-25
      • 2021-12-14
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2020-07-18
      相关资源
      最近更新 更多