{"height":"190","categories":["DL"],"width":"100%","image_url":null,"published":"2026-05-03 13:33:09","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhtn20190109.hatenablog.com%2Fentry%2F2026%2F05%2F03%2F133309\" title=\"\u6700\u9069\u5316\u624b\u6cd5\u306e\u5b9f\u88c5 - HTN20190109\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_url":"https://htn20190109.hatenablog.com/","author_url":"https://blog.hatena.ne.jp/HTN20190109/","description":"import numpy as np class SGD: def __init__(self,lr=0.01): self.lr =lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr * grads[key] class Momentum: def __init__(self, lr=0.01, momentum=0.9): self.lr = lr self.momentum = momentum self.v = None def update(self, params,\u2026","provider_name":"Hatena Blog","type":"rich","blog_title":"HTN20190109\u306e\u65e5\u8a18","version":"1.0","url":"https://htn20190109.hatenablog.com/entry/2026/05/03/133309","provider_url":"https://hatena.blog","title":"\u6700\u9069\u5316\u624b\u6cd5\u306e\u5b9f\u88c5","author_name":"HTN20190109"}