train_loss_list=[] train_acc_list=[] test_acc_list=[] #1エポック当たりの繰り返し数 iter_per_epoch =max(train_size/batch_size,1) for i in range(iters_num): batch_mask = np.random.choice(train_size , batch_size) x_batch=x_data_train[batch_mask] t_batch=t_data_train[batch_mask] #grad=network.numerical_gradient(x_batch,t_batch) grad=network.gradient(x_batch,t_batch) for key in("W1","b1","W2","b2"): #Wは大文字 network.params[key] -=learning_rate*grad[key] loss=network.loss(x_batch,t_batch) train_loss_list.append(loss) """ train_acc = network.accuracy(x_data_train, t_data_train) test_acc = network.accuracy(x_data_test, t_data_test) train_acc_list.append(train_acc) test_acc_list.append(test_acc) """ print("ここまで1") """ network.predict(引数)で 予測が可能 この引数は入力データの列数と同じであれば行数にかかわらず出てくる 今回は6802やったかなあれを入れたら、onehotの結果が出る
optimizer_mul = AdaGrad() optimizer_multi = AdaGrad() for i in range(max_iterations): batch_mask = np.random.choice(train_size, batch_size) x_batch = x_train[batch_mask] t_batch = t_train[batch_mask] grads_mul = mul_layer_net.gradient(x_batch, t_batch) grads_multi = multi_layer_net.gradient(x_batch, t_batch) optimizer_mul.update(mul_layer_net.params, grads_mul) optimizer_multi.update(multi_layer_net.params, grads_multi) loss_mul = mul_layer_net.loss(x_batch, t_batch) loss_multi = multi_layer_net.loss(x_batch, t_batch) if i % 100 == 0: print("===========" + "iteration:" + str(i) + "===========") loss_mul = mul_layer_net.loss(x_batch, t_batch) loss_multi = multi_layer_net.loss(x_batch, t_batch) print('mul-loss' + ":" + str(loss_mul)) print('multi-loss' + ":" + str(loss_multi)) # optimizer_function = Adam() # batch_size = 128 # for i in range(2000): # batch_index = np.random.choice(x_train.shape[0],batch_size) # x_batch = x_train[batch_idex] # t_batch = t_train[batch_index] # gradient = mul_layer_net.gradient(x_batch, t_batch)