.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
loss = gluon.loss.SoftmaxCrossEntropyLoss()
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
loss = nn.CrossEntropyLoss(reduction='none')
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
.. raw:: html
.. raw:: html
Optimizasyon Algoritması
------------------------
Burada, optimizasyon algoritması olarak 0.1 öğrenme oranıyla minigrup
rasgele gradyan inişini kullanıyoruz. Bunun doğrusal regresyon örneğinde
uyguladığımızla aynı olduğuna ve optimize edicilerin genel
uygulanabilirliğini gösterdiğine dikkat edin.
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.1})
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
trainer = torch.optim.SGD(net.parameters(), lr=0.1)
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
trainer = tf.keras.optimizers.SGD(learning_rate=.1)
.. raw:: html
.. raw:: html
Eğitim
------
Ardından modeli eğitirken :numref:`sec_softmax_scratch` içinde
tanımlanan eğitim işlevini çağırıyoruz.
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
num_epochs = 10
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)
.. figure:: output_softmax-regression-concise_75d138_51_0.svg
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
num_epochs = 10
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)
.. figure:: output_softmax-regression-concise_75d138_54_0.svg
.. raw:: html
.. raw:: html
.. raw:: latex
\diilbookstyleinputcell
.. code:: python
num_epochs = 10
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)
.. figure:: output_softmax-regression-concise_75d138_57_0.svg
.. raw:: html
.. raw:: html
Daha önce olduğu gibi, bu algoritma, bu sefer öncekinden daha az kod
satırı ile, iyi bir doğruluk sağlayan bir çözüme yakınsıyor.
Özet
----
- Yüksek seviyeli API'leri kullanarak softmaks regresyonunu çok daha öz
uygulayabiliriz.
- Hesaplama bakış açısından, softmaks regresyonunun uygulanmasının
karmaşıklıkları vardır. Pek çok durumda, bir derin öğrenme
çerçevesinin sayısal kararlılığı sağlamak için bu çok iyi bilinen
hilelerin ötesinde ek önlemler aldığını ve bizi pratikte tüm
modellerimizi sıfırdan kodlamaya çalıştığımızda karşılaşacağımız daha
da fazla tuzaktan kurtardığını unutmayın.
Alıştırmalar
------------
1. Sonuçların ne olduğunu görmek için grup boyutu, dönem sayısı ve
öğrenme oranı gibi hiper parametreleri ayarlamayı deneyin.
2. Eğitim için dönem sayısını artırın. Test doğruluğu neden bir süre
sonra düşüyor olabilir? Bunu nasıl düzeltebiliriz?
.. raw:: html
.. raw:: html
`Tartışmalar `__
.. raw:: html
.. raw:: html
`Tartışmalar `__
.. raw:: html
.. raw:: html
`Tartışmalar `__
.. raw:: html
.. raw:: html