{"version":"1.0","description":"import numpy as np def relu(X): return np.maximum(0, X) def softmax(X): X = X - np.max(X, axis=1, keepdims=True) expX = np.exp(X) return expX / np.sum(expX, axis=1, keepdims=True) def relu_backward(Z, delta): delta[Z <= 0] = 0 return delta def cross_entropy_error(y, t): batch_size = y.shape[0] retur\u2026","width":"100%","height":"190","provider_url":"https://hatena.blog","author_name":"HTN20190109","title":"FullyConnectedNeuralNetwork\u30af\u30e9\u30b9","published":"2026-05-02 15:44:41","author_url":"https://blog.hatena.ne.jp/HTN20190109/","url":"https://htn20190109.hatenablog.com/entry/2026/05/02/154441","provider_name":"Hatena Blog","type":"rich","blog_title":"HTN20190109\u306e\u65e5\u8a18","blog_url":"https://htn20190109.hatenablog.com/","categories":["DL"],"image_url":null,"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhtn20190109.hatenablog.com%2Fentry%2F2026%2F05%2F02%2F154441\" title=\"FullyConnectedNeuralNetwork\u30af\u30e9\u30b9 - 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>"}