Каковы все различия между numpy.random.rand
и numpy.random.randn
?
Из документов я знаю, что единственное различие между ними заключается в вероятностном распределении, из которого взяты все числа, но общая структура (измерение) и используемый тип данных (с плавающей точкой) одинаковы. Мне трудно отлаживать нейронную сеть из-за веры в это.
В частности, я пытаюсь повторно реализовать нейронную сеть, представленную в книге " Нейронная сеть и глубокое обучение" Майкла Нильсона. Оригинальный код можно найти здесь. Моя реализация была такой же, как и оригинальная, за исключением того, что я определил и инициализировал веса и смещения с помощью numpy.random.rand
в функции init
, а не numpy.random.randn
как в оригинале.
Однако мой код, который использует random.rand
для инициализации weights and biases
, не работает, потому что сеть не будет учиться, а весы и смещения не изменятся.
Какая разница между двумя случайными функциями вызывает эту странность?