# -*- coding: utf-8 -*-
"""
Created on Wed Jan  2 12:18:40 2019

@author: JoshuaChen
"""
import sys, os
sys.path.append(os.pardir)
import numpy as np
from dataset.mnist import load_mnist
from two_layer_net import TwoLayerNet


#
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True)

input_size = 784
hidden_size = 50
output_size =10
network = TwoLayerNet(input_size,hidden_size,output_size)

x_batch = x_train[:3]
t_batch = t_train[:3]

#


#
grad_numerical = network.numerical_gradient(x_batch,t_batch)
grad_backprop = network.gradient(x_batch,t_batch)

for key in grad_numerical.keys():
	diff = np.average( np.abs(grad_backprop[key] - grad_numerical[key]) )
	print(key + ":" + str(diff))

#

