Я изучал глубокое обучение в Kaggle с помощью упражнения, и это смутило меня.Для того, чтобы написать код для проверки того, был ли что-то хот-дог или нет, был список предсказаний, причем каждый элемент являлся наиболее вероятным предсказанием того, каким было другое изображение.Таким образом, общий список был:
[
[('n07697537', 'hotdog', 0.8770528)],
[('n07697537', 'hotdog', 0.9659182)],
[('n07579787', 'plate', 0.7972369)],
[('n07583066', 'guacamole', 0.9996675)]
]
И один элемент:
[('n07697537', 'hotdog', 0.9659182)]
Итак, чтобы проверить, является ли изображение наиболее вероятным хот-догом, я должен получить этовторое поле, метка.Но я столкнулся с некоторыми проблемами синтаксиса, пытаясь получить доступ к полю внутри вложенного списка.
Поэтому я попытался получить доступ к метке первого элемента в качестве примера (декодированный - это имя внешнего списка) с помощью print(decoded[0][1])
.Это не сработало.Поэтому я проверил пример решения после того, как не смог понять, как правильно получить доступ к элементу, не делая что-то запутанное.Пример кода используется
labels = [d[0][1] for d in decoded]
И это успешно составляет список меток.Я пытался сделать что-то похожее, прежде чем проверять решение, но я был немного не в порядке, я попробовал единственную версию этого, установив d = decoded[0]
, и я получил список длины 1 с тремя элементами, как пример элемента ранее.Что меня смущает, так это то, что d[0][1]
работает, чтобы дать мне ярлык, а decoded[0][1]
- нет.Почему?