что не так с циклом for в используемом списке?

#arrays #python-3.x #numpy

#массивы #python-3.x #numpy

Вопрос:

Я пытаюсь определить список с помощью for цикла:

 import numpy as np
# 2 input neurons , next 3 hidden , 5 hidden , 2 output neurons
layer_sizes = { 2,3,5,2 }
# for matrix shapes 3,2  5,3 and 2,5
weight_shapes = [{a,b} for a,b in zip(layer_sizes[1:],layer_sizes[:-1])]
#weight_shapes = [ {3,2},{5,3},{2,5}]
weights = [np.zeros(s) for s in weight_shapes]
print(weight_shapes)
print(weights)
 

Но я продолжал получать эту ошибку:

 Traceback (most recent call last):
  File "C:UsersUSERNNe2.py", line 5, in <module>
    weight_shapes = [{a,b} for a,b in zip(layer_sizes[1:],layer_sizes[:-1])]
TypeError: 'set' object is not subscriptable
 

Я ожидаю, что операторы print будут предоставлять содержимое списков.

Комментарии:

1. Использовать tuple или list вместо set : {} ? Итак, замените все { на ( или [ .

Ответ №1:

Ваш layer_sizes набор {2, 3, 5} , но ваш комментарий предполагает, что вы надеялись, что это будет список длиной 4, как если бы он был объявлен таким образом:

 layer_sizes = [2, 3, 5, 2]