【问题标题】:method object not subscriptable方法对象不可下标
【发布时间】:2020-11-01 10:09:33
【问题描述】:
def generate_batch_data_random(self, data, labels, batch_size):
        ylen = len(labels)
        loopcount = ylen // batch_size
        while True:
            i = np.random.randint(0, loopcount)
            yield (data[i * batch_size: (i + 1) * batch_size], labels[i * batch_size:(i + 1) * batch_size])

有人知道我怎么解决这个问题吗?错误显示 (data[i * batch_size: (i + 1) * batch_size], labels[i * batch_size:(i + 1) * batch_size]) 不可下标,但我不知道如何更改语法以返回索引

【问题讨论】:

  • 它是否说明了什么是不可订阅的?它很可能应该是数据或标签
  • 两者都不可下标。
  • 你能打印(type(data)) print(type(labels))吗?

标签: keras


【解决方案1】:

事实证明(根据你的评论)标签不是一个数组,而是一个方法,所以你不能写:

labels[...]

这就是为什么错误说它是不可订阅的。

找出您输入为“标签”的内容。如果它是一个返回标签的方法,你可能只需要在某处写标签()。或者你可能在你的函数中输入了错误的标签。

【讨论】:

  • 但是当我尝试打印 data[i * batch_size: (i + 1) * batch_size] 它还显示方法不可下标
  • 检查然后 type(data) 如果它的方法,它不是一个数组,因此你必须检查为什么它是错误的。
猜你喜欢
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 2020-07-07
相关资源
最近更新 更多