chainer의 작법 그 5
2164 단어 AutoencoderChainer
개요
chainer의 작법, 조사해 보았다.
autoencoder.
가져오기
import numpy as np
from chainer import datasets, iterators
from chainer import optimizers
from chainer import Chain
from chainer import training
from chainer.training import extensions
import chainer.functions as F
import chainer.links as L
import chainer
import matplotlib.pyplot as plt
교육 데이터 세트 반복
datasets get_mnist 사용한다.
train, test = datasets.get_mnist()
train = train[0 : 1000]
train = [i[0] for i in train]
미니 배치에 대한 전처리
datasets의 TupleDataset 사용한다.
train = datasets.TupleDataset(train, train)
train_iter = iterators.SerialIterator(train, 100)
test = test[0 : 25]
신경망의 Forward/backward 계산
Classifier 사용하지만, loss는 mean_squared를 사용한다.
활성화는 relu.
class Autoencoder(Chain):
def __init__(self):
super(Autoencoder, self).__init__(encoder = L.Linear(784, 80), decoder = L.Linear(80, 784))
def __call__(self, x, hidden = False):
h = F.relu(self.encoder(x))
if hidden:
return h
else:
return F.relu(self.decoder(h))
model = L.Classifier(Autoencoder(), lossfun = F.mean_squared_error)
model.compute_accuracy = False
매개변수 업데이트
optimaizer는 Adam.
optimizer = optimizers.Adam()
optimizer.setup(model)
updater = training.StandardUpdater(train_iter, optimizer, device = -1)
trainer = training.Trainer(updater, (80, 'epoch'), out = "result")
trainer.run()
평가 데이터 세트에서 현재 파라미터 평가
중간 결과를 로그에 남기기
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(['epoch', 'main/loss']))
결과
이상.
Reference
이 문제에 관하여(chainer의 작법 그 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/0d8bbe8cab38df54852d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
from chainer import datasets, iterators
from chainer import optimizers
from chainer import Chain
from chainer import training
from chainer.training import extensions
import chainer.functions as F
import chainer.links as L
import chainer
import matplotlib.pyplot as plt
교육 데이터 세트 반복
datasets get_mnist 사용한다.
train, test = datasets.get_mnist()
train = train[0 : 1000]
train = [i[0] for i in train]
미니 배치에 대한 전처리
datasets의 TupleDataset 사용한다.
train = datasets.TupleDataset(train, train)
train_iter = iterators.SerialIterator(train, 100)
test = test[0 : 25]
신경망의 Forward/backward 계산
Classifier 사용하지만, loss는 mean_squared를 사용한다.
활성화는 relu.
class Autoencoder(Chain):
def __init__(self):
super(Autoencoder, self).__init__(encoder = L.Linear(784, 80), decoder = L.Linear(80, 784))
def __call__(self, x, hidden = False):
h = F.relu(self.encoder(x))
if hidden:
return h
else:
return F.relu(self.decoder(h))
model = L.Classifier(Autoencoder(), lossfun = F.mean_squared_error)
model.compute_accuracy = False
매개변수 업데이트
optimaizer는 Adam.
optimizer = optimizers.Adam()
optimizer.setup(model)
updater = training.StandardUpdater(train_iter, optimizer, device = -1)
trainer = training.Trainer(updater, (80, 'epoch'), out = "result")
trainer.run()
평가 데이터 세트에서 현재 파라미터 평가
중간 결과를 로그에 남기기
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(['epoch', 'main/loss']))
결과
이상.
Reference
이 문제에 관하여(chainer의 작법 그 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/0d8bbe8cab38df54852d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
train, test = datasets.get_mnist()
train = train[0 : 1000]
train = [i[0] for i in train]
datasets의 TupleDataset 사용한다.
train = datasets.TupleDataset(train, train)
train_iter = iterators.SerialIterator(train, 100)
test = test[0 : 25]
신경망의 Forward/backward 계산
Classifier 사용하지만, loss는 mean_squared를 사용한다.
활성화는 relu.
class Autoencoder(Chain):
def __init__(self):
super(Autoencoder, self).__init__(encoder = L.Linear(784, 80), decoder = L.Linear(80, 784))
def __call__(self, x, hidden = False):
h = F.relu(self.encoder(x))
if hidden:
return h
else:
return F.relu(self.decoder(h))
model = L.Classifier(Autoencoder(), lossfun = F.mean_squared_error)
model.compute_accuracy = False
매개변수 업데이트
optimaizer는 Adam.
optimizer = optimizers.Adam()
optimizer.setup(model)
updater = training.StandardUpdater(train_iter, optimizer, device = -1)
trainer = training.Trainer(updater, (80, 'epoch'), out = "result")
trainer.run()
평가 데이터 세트에서 현재 파라미터 평가
중간 결과를 로그에 남기기
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(['epoch', 'main/loss']))
결과
이상.
Reference
이 문제에 관하여(chainer의 작법 그 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/0d8bbe8cab38df54852d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Autoencoder(Chain):
def __init__(self):
super(Autoencoder, self).__init__(encoder = L.Linear(784, 80), decoder = L.Linear(80, 784))
def __call__(self, x, hidden = False):
h = F.relu(self.encoder(x))
if hidden:
return h
else:
return F.relu(self.decoder(h))
model = L.Classifier(Autoencoder(), lossfun = F.mean_squared_error)
model.compute_accuracy = False
optimaizer는 Adam.
optimizer = optimizers.Adam()
optimizer.setup(model)
updater = training.StandardUpdater(train_iter, optimizer, device = -1)
trainer = training.Trainer(updater, (80, 'epoch'), out = "result")
trainer.run()
평가 데이터 세트에서 현재 파라미터 평가
중간 결과를 로그에 남기기
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(['epoch', 'main/loss']))
결과
이상.
Reference
이 문제에 관하여(chainer의 작법 그 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/0d8bbe8cab38df54852d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(['epoch', 'main/loss']))
결과
이상.
Reference
이 문제에 관하여(chainer의 작법 그 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/0d8bbe8cab38df54852d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(chainer의 작법 그 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ohisama@github/items/0d8bbe8cab38df54852d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)