Получить указатель на значение словаря (python) - PullRequest
0 голосов
/ 26 апреля 2020

Я хотел бы получить указатель на значение словаря, но [поскольку значения являются числами с плавающей точкой, а не объектами (на самом деле это неправильно, я имел дело с np.arrays).] это не представляется возможным. Есть ли способ получить указатели на [значения с плавающей запятой] (или значения) (в словаре) в python 3.x?

W = parameters["W" + str(l)] #not a pointer. I want a pointer.
b = parameters["b" + str(l)] #not a pointer
W = W - a*grads["dW" + str(l)] #W[l]−α dW[l]
b = b - a*grads["db" + str(l)] #b[l]=b[l]−α db[l]

W и b не передают свои обновления в словарь.

:: Edit :: Я думал, что это возможно, потому что срезы являются ссылками, а не копиями значений массива. Я подумал, что в словарях может быть что-то похожее.

1 Ответ

0 голосов
/ 26 апреля 2020

Кажется, ответ «Нет, у вас не может быть ссылок на значения словаря, особенно если они являются примитивами». Я просто согласился с тем, что значения возвращены, и пришел к очевидному решению.

W = parameters["W" + str(l)] #not a reference
b = parameters["b" + str(l)] #not a reference

W = W - a*grads["dW" + str(l)] 
b = b - a*grads["db" + str(l)] 

parameters["W" + str(l)] = W #save back into the dictionary
parameters["b" + str(l)] = b #save back into the dictionary

Это решение (без использования ссылок) содержит много дополнительных строк кода, но имеет более короткие строки и делает математический раздел более читаемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...