как заставить эту инициализацию массива numpy работать? - PullRequest
0 голосов
/ 18 апреля 2020

вот пример кода

A1 = relu(Z1)
D1 = np.random.randn(A1.shape)

D1 не может быть инициализирован вышеуказанной ошибкой типа: требуется целое число

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020
In [633]: A=np.zeros((3,4))                                                                            
In [634]: np.random.randn(*A.shape)                                                                    
Out[634]: 
array([[ 0.42267339,  0.09075801,  0.16493545,  0.96534338],
       [ 0.1899203 ,  1.43543348,  1.22381454, -0.88792278],
       [ 1.10075586,  1.35832023,  0.11406843, -1.51401401]])

randn docs рекомендует использовать standard_normal, который принимает аргумент кортежа:

In [635]: np.random.standard_normal(A.shape)                                                           
Out[635]: 
array([[ 0.16811322, -0.46261632, -1.19500492,  0.64124171],
       [-0.17198705,  1.52709934, -1.51043158,  0.46563776],
       [-0.59715752,  1.09271112, -1.37173267,  0.744021  ]])
0 голосов
/ 18 апреля 2020

Вы можете "распаковать" элементы в параметрах, используя звездочку (*) перед A1.shape:

D1 = np.random.randn(<b>*</b>A1.shape)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...