Введение в машинное обучение с TensorFlow

На карантине решил пройти пару курсов на coursera по машинному обучению. Начал вот с этого

Некоторые вещи очевидны, некоторые стали понятны. В любом случае – увлекательно.

Первая неделя

Пока все очень просто и очень простым языком, есть некоторые глюки которые авторы не торопятся исправить. Первый глюк, то что в colab от гугла нужно явно указывать какая версия tensorflow используется, у них во всех примерах это не прописано. C какого момента версией по умолчанию станет вторая, но пока что первая и работать ничего не будет. Надо добавить строчку %tensorflow_version 2.x

%tensorflow_version 2.x
import tensorflow as tf
print(tf.__version__)

Второй момент в первом заднии, не получится получить за него оценку без того, чтобы не закомментить два последних блока, на скриншоте ниже, последний я закоментировал, предпоследний нет (но надо оба), потом вернуть обратно и выполнить что они просят.

Два последних блока нужно закомментировать

Два последних блока нужно закомментировать

Если будут какие-то любопытные моменты на второй неделе, сообщу :-)

Вторая неделя

На второй неделе тоже есть глюк, который не позволит ни выполнить демо, ни задание. Но там легко разобраться.

import tensorflow as tf

class myCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs={}):
    if(logs.get('accuracy')>0.6):
      print("\nReached 60% accuracy so cancelling training!")
      self.model.stop_training = True

mnist = tf.keras.datasets.fashion_mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

callbacks = myCallback()

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer=tf.optimizers.Adam(),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=10, callbacks=[callbacks])

Что бы всё работало вместо logs.get('accuracy') нужно logs.get('acc')

Третья неделя

Рекомендую посмотреть видосики от Andew Ng – очень полезно и помогут сделать задание без ошибок. Особенно когда надо посчитать результаты конволюции (свёртка ? ) или пулинга.

Четвертая неделя

Обратите внимание что ваш калбек не сработает, потому что его нужно наследовать от tf.keras.callbacks.Callback про это нигде в курсе не говорится.

class myCallback(tf.keras.callbacks.Callback):
        def on_epoch_end(self, epoch, logs={}):
            if(logs.get('acc') > DESIRED_ACCURACY):
              print("\nReached 99.9% accuracy so cancelling training!")
              self.model.stop_training = True
         # Your Code

    callbacks = myCallback()

Четвертая неделя – последняя, получил сертификатик

Сертификат

Сертификат

Но главное конечно не сертифиат и даже не знания которые на получены на курсе. Скорее это средство для расширения кругозора и дальнейшегно обучения, много разной литературы, полезных ссылок.

Comments

comments powered by Disqus