TensorFlow 2 собирается изменить ландшафт Deep Learning. Это сделало,
Благодаря этому Deep Learning станет более популярным в различных областях исследований и промышленности.
TensorFlow 2 имеет встроенный API Keras. Keras - чрезвычайно популярный высокоуровневый API для построения и обучения моделей глубокого обучения. Прежде чем идти вперед, важно знать,
Я рекомендую прочитать [ 1 ] а также [ 2 ] узнать больше информации о преимуществах TensorFlow 2.0. Таким образом, TF 2.0 обеспечил простоту реализации наряду с огромной вычислительной эффективностью и совместимостью с любой платформой, такой как Android, iOS и встроенными системами, такими как Raspberry Pi и Edge TPU.
Достижение этого было трудным прежде и требовало затрат времени на поиск альтернативных путей. Так как TensorFlow 2 привел их всех, необходимо перейти на него раньше, чем позже.
Для этого здесь мы изучим установку и настройку TensorFlow 2.0.
Anaconda с Jupyter предоставляет более простой подход для установки Python и работы над ним.
Установка Anaconda относительно проста. Перейдите по этой ссылке с последней версией Python 3.4+: https://jupyter.org/install
Похожий наpip
с Анакондой мы имеемconda
для создания виртуальных сред и установки пакетов.
а. Установите Python 3.4+
Проверьте ваши текущие версии.
$ python --version
или,
$ python3 --version
У меня разные Python на моем Mac (Python 3.6 на Anaconda) и Ubuntu (Python 3.7). Вывод, который я вижу на них,
Python 3.6.8 :: Anaconda custom (x86_64)# MacPython 3.7.1# Ubuntu
Либо Python внутри Анаконды, либо иначе будет работать.
Если ваша версияне3.4+, установите его следующим образом.
$ brew update
$ brew install python # Installs Python 3$ sudo apt install python3-dev python3-pip
б. Установить virtualenv
virtualenv
требуется для создания виртуальной среды. Его требования объяснены в следующем разделе.
Mac OS
$ sudo pip3 install -U virtualenv# system-wide install
Ubuntu
$ sudo pip3 install -U virtualenv# system-wide install
Заметка:pip
(вместо тогоpip3
) также иногда используется. Если не уверены между двумя, используйтеpip3
, Вы не ошибетесь сpip3
, Если вы хотите знать, можете ли вы использоватьpip
, запустите следующее
$ pip3 --version
pip 19.1.1 from /Users/inferno/anaconda/lib/python3.6/site-packages/pip (python 3.6)$ pip --version
pip 19.1.1 from /Users/inferno/anaconda/lib/python3.6/site-packages/pip (python 3.6)
В моей системе версии одинаковы для обоихpip
а такжеpip3
, Поэтому я могу использовать любой из них.
Далее мы рассмотрим шаги установки с обоими.
Виртуальная среда - это изолированная среда для проектов Python. Внутри виртуальной среды у нас может быть совершенно независимый набор пакетов (зависимостей) и настроек, которые не будут конфликтовать ни с чем в другой виртуальной среде или с локальной средой Python по умолчанию.
Это означает, что мы можем хранить разные версии одного и того же пакета, например, мы можем использовать scikit-learn 0.1 для одного проекта и scikit-learn 0.22 для другого проекта в той же системе, но в разных виртуальных средах.
Ubuntu / Mac (Python без Анаконды)
$ virtualenv --system-site-packages -p python3 tf_2
Приведенная выше команда создаст виртуальную средуtf_2
, Понимание команды,
virtualenv
создаст виртуальную среду.--system-site-packages
позволяет проекты в виртуальной средеtf_2
доступ к глобальным сайт-пакетам. Настройка по умолчанию не разрешает этот доступ (--no-site-packages
раньше использовался для этой настройки по умолчанию, но теперь устарел.)-p python3
используется для установки интерпретатора Python дляtf_2
, Этот аргумент можно пропустить, еслиvirtualenv
был установлен с Python3. По умолчанию это интерпретатор python для виртуальной среды. Другой вариант для установки Python3.x в качестве интерпретатора$ virtualenv --system-site-packages --python=python3.7 tf_2
, Это дает больше контроля.tf_2
это имя виртуальной среды, которую мы создали. Это создает физический каталог в месте расположения виртуальных сред. это/tf_2
Каталог содержит копию компилятора Python и все пакеты, которые мы установим позже.Конда на Ubuntu / Mac (Python от Анаконды)
Если вы используете Conda, вы можете создать виртуальную среду как,
$ conda create -n tf_2
Приведенная выше команда также создаст виртуальную средуtf_2
, В отличие от ранее, нам не требуется устанавливать другой пакет для создания виртуальной среды. Встроенныйconda
Команда обеспечивает это.
Понимание команды,
conda
может использоваться для создания виртуальных сред, установки пакетов, вывода списка установленных пакетов в среде и т. д. Короче,conda
выполняет операции, которыеpip
а такжеvirtualenv
делает Тем не мение,conda
не заменяетpip
так как некоторые пакеты доступны наpip
но не наconda
,create
используется для создания виртуальной среды.-n
это аргумент, специфичный дляcreate
,-n
используется для названия виртуальной среды. Значениеn
то есть имя среды, здесьtf_2
,--system-site-packages
вvirtualenv
,--use-local
может быть использован.Активируйте виртуальную среду.
Ubuntu / Mac (Python без Анаконды)
$ source tf_2/bin/activate
Конда на Ubuntu / Mac (Python от Анаконды)
$ conda activate tf_2
После активации терминал изменится на этот(tf_2) $
,
Следующие инструкции одинаковы для обеих опций Python.
Перед началом установки TensorFlow мы обновимpip
,
(tf_2) $ pip install --upgrade pip
Теперь установите TensorFlow.
(tf_2) $ pip install --upgrade tensorflow==2.0.0-beta1
tensorflow
Приведенный выше аргумент устанавливает версию 2.0.0-бета1 только для процессора.
Выберите подходящую версию TensorFlow из https://www.tensorflow.org/install/pip,
На момент написания этой статьи у нас был тензор потока 2.0.0-бета1. Это рекомендуется. Мы можем изменить аргумент на один из следующих, основываясь на нашем требовании.
tensorflow==2.0.0-beta1
-Preview TF 2.0 Beta build только для процессора (рекомендуемые).tensorflow-gpu==2.0.0-beta1
-Preview TF 2.0 Бета-версия с Поддержка GPU,tensorflow
-Последний стабильный выпуск только для процессора,tensorflow-gpu
- Последний стабильный выпуск с Поддержка GPU,tf-nightly
- Предварительный просмотр ночной сборки только для процессора.tf-nightly-gpu
-Предыдущий ночной билд с Поддержка GPU,Примечание: мы будем использовать
pip install
и для Конды. TensorFlow не доступен сconda
,
Чтобы быстро проверить установку через терминал, используйте
(tf_2) $ python -c "import tensorflow as tf; x = [[2.]]; print('tensorflow version', tf.__version__); print('hello, {}'.format(tf.matmul(x, x)))"
Вывод будет (игнорируя системные сообщения),
tensorflow version 2.0.0-beta1
hello, [[4.]]
Обратите внимание на вывод версии TensorFlow. Если это не та версия, которую вы установили (в данном случае 2.0.0-бета1), значит, что-то пошло не так. Скорее всего, ранее был установлен TensorFlow и / или текущая установка не удалась.
Мы будем тестировать и изучать TensorFlow 2.0 с MNIST (fashion_mnist)Пример классификации изображений.
import matplotlib.pyplot as plt
import tensorflow as tf
layers = tf.keras.layers
import numpy as np
print(tf.__version__)
Убедитесь, чтоtf.__version__
выходы 2.х. Если версия старше, проверьте установку или виртуальную среду.
Скачатьfashion_mnistданные изtf
открыть наборы данных и предварительно обработать его.
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
Чтобы ознакомиться с данными, мы приведем несколько примеров из них.
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(x_train[i], cmap=plt.cm.binary)
plt.xlabel(class_names[y_train[i]])
plt.show()
Теперь мы будем строить модельпослойный,
model = tf.keras.Sequential()
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
Обратите внимание, что эта модель предназначена только для демонстрации и, следовательно, обучена всего за пять эпох.
Теперь мы проверим точность модели на тестовых данных.
model.evaluate(x_test, y_test)
Мы представим одно из предсказаний. Мы будем использовать некоторые UDF из [ 3 ].
def plot_image(i, predictions_array, true_label, img):
predictions_array, true_label, img = predictions_array[i], true_label[i], img[i]
plt.grid(False)
plt.xticks([])
plt.yticks([])
plt.imshow(img, cmap=plt.cm.binary) predicted_label = np.argmax(predictions_array)
if predicted_label == true_label:
color = 'blue'
else:
color = 'red'
plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label],
100*np.max(predictions_array),
class_names[true_label]),
color=color)def plot_value_array(i, predictions_array, true_label):
predictions_array, true_label = predictions_array[i], true_label[i]
plt.grid(False)
plt.xticks([])
plt.yticks([])
thisplot = plt.bar(range(10), predictions_array, color="#777777")
plt.ylim([0, 1])
predicted_label = np.argmax(predictions_array)
thisplot[predicted_label].set_color('red')
thisplot[true_label].set_color('blue')
Мы найдем прогноз, то есть вероятность каждого изображения, принадлежащего каждому из 10 классов, для тестовых изображений.
predictions = model.predict(x_test)i = 0
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions, y_test, x_test)
plt.subplot(1,2,2)
plot_value_array(i, predictions, y_test)
plt.show()
Как мы можем видеть на графике выше, вероятность предсказания «ботинка лодыжки» самая высокая. Для дальнейшего подтверждения мы выводим прогнозируемую метку как,
predicted_label = class_names[np.argmax(predictions[0])]
print('Actual label:', class_names[y_test[0]])
print('Predicted label:', predicted_label)
Перед закрытием мы отключим виртуальную среду.
Дляvirtualenv
использование,
(tf_2) $ deactivate
Дляconda
использование,
(tf_2) $ conda deactivate
Репозиторий GitHub с примером MNIST на TensorFlow 2.0 Вот,
Это сообщение было первоначально размещено на medium.com 13 июня 2019 г.