深さ学習基礎0415
6143 ワード
preview
予測値、比較的に正確な答え、損失関数=>傾斜計算を計算して、損失関数の方向を減らします!
2層ニューラルネットワーク(input,hidden,output)
TwoLayerNetクラスは、小規模な導入学習によって実装され、MNISTデータセットを使用して学習されます.
学習率、hidden size、反復回数、学習率などを変更し、変化の結果を把握します.
=>以上の変数の量が異なる場合、結果はどのように異なりますか...
その前に、MNISTデータを利用して、Postingで定義されたクラスを学びましょう.
学習方式は小規模学習を実行する.
小規模な導入 import numpy as np
from dataset.mnist import load_mnist
from two_layer_net import TwoLayerNet
import matplotlib.pyplot as plt
# 데이터 읽기
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True)
train_loss_list = []
# 하이퍼파라미터
iters_num = 10000 # 반복횟수를 적절히 설정
train_size = x_train.shape[0]
batch_size = 100 # 미니 배치 크기
learning_rate = 0.1
network = TwoLayerNet(input_size = 784, hidden_size=50, output_size=10)
for i in range(iters_num):
# 미니배치 획득
batch_mask = np.random.choice(train_size, batch_size)
x_batch = x_train[batch_mask]
t_batch = t_train[batch_mask]
# 기울기 계산
grad = network.numerical_gradient(x_batch, t_batch)
# 매개변수 갱신
for key in ('W1', 'b1', 'W2', 'b2'):
network.params[key] = -learning_rate * grad[key]
# 학습 경과 기록
loss = network.loss(x_batch, t_batch)
train_loss_list.append(loss)
x = np.arange(len(train_loss_list))
plt.plot(x, train_loss_list)
plt.show()
実は授業中に上のコードがうまく実行されず、教授と30分も解決したが、plt図は見えなかった.
幸い原因が見つかり、grad = network.numerical_gradient(x_batch, t_batch)
コードはcpuを多く占有し、無限ループ(?)に陥らせた.
週末はずっと和弦を見ています...
Reference
この問題について(深さ学習基礎0415), 我々は、より多くの情報をここで見つけました
https://velog.io/@allzeroyou/딥러닝기초0415
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import numpy as np
from dataset.mnist import load_mnist
from two_layer_net import TwoLayerNet
import matplotlib.pyplot as plt
# 데이터 읽기
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True)
train_loss_list = []
# 하이퍼파라미터
iters_num = 10000 # 반복횟수를 적절히 설정
train_size = x_train.shape[0]
batch_size = 100 # 미니 배치 크기
learning_rate = 0.1
network = TwoLayerNet(input_size = 784, hidden_size=50, output_size=10)
for i in range(iters_num):
# 미니배치 획득
batch_mask = np.random.choice(train_size, batch_size)
x_batch = x_train[batch_mask]
t_batch = t_train[batch_mask]
# 기울기 계산
grad = network.numerical_gradient(x_batch, t_batch)
# 매개변수 갱신
for key in ('W1', 'b1', 'W2', 'b2'):
network.params[key] = -learning_rate * grad[key]
# 학습 경과 기록
loss = network.loss(x_batch, t_batch)
train_loss_list.append(loss)
x = np.arange(len(train_loss_list))
plt.plot(x, train_loss_list)
plt.show()
実は授業中に上のコードがうまく実行されず、教授と30分も解決したが、plt図は見えなかった.幸い原因が見つかり、
grad = network.numerical_gradient(x_batch, t_batch)
コードはcpuを多く占有し、無限ループ(?)に陥らせた.週末はずっと和弦を見ています...
Reference
この問題について(深さ学習基礎0415), 我々は、より多くの情報をここで見つけました https://velog.io/@allzeroyou/딥러닝기초0415テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol