Введение в машинное обучение с 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()
Четвертая неделя – последняя, получил сертификатик

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