Урок за TensorFlow за начинаещи
TensorFlow е една от най-популярните рамки за дълбоко обучение и машинно обучение. Разработена от екипа на Google Brain, TensorFlow е широко използвана в множество изследователски проекти и индустриални приложения. Тази статия предоставя подробно ръководство, което ще ви помогне, като начинаещ, да започнете работа с TensorFlow.
1. Разбиране на основите на TensorFlow
Преди да започнем да инсталираме и използваме TensorFlow, е важно да разберем какво представлява TensorFlow и основните концепции, които стоят зад него. TensorFlow е рамка с отворен код за числени изчисления и машинно обучение. Тя използва графи на потока от данни за извършване на числени операции, където възлите в графа представляват математически операции, а ръбовете представляват многомерни масиви от данни (тензори), свързани помежду им.
2. Инсталиране на TensorFlow
Първата стъпка в използването на TensorFlow е инсталирането му. Ето как да инсталирате TensorFlow с помощта на pip, мениджъра на пакети на Python.
1. Инсталиране на Python:
Уверете се, че имате инсталиран Python на вашата система. TensorFlow е съвместим с Python от 3.6 до 3.9 към момента на писане на това. Можете да изтеглите Python от официалния уебсайт на Python.
2. Виртуална среда:
Силно препоръчително е да създадете виртуална среда, за да изолирате вашия TensorFlow проект:
„ш“
python -m venv myenv
изходен код myenv/bin/activate За потребители на Mac/Linux
myenv\Scripts\activate За потребители на Windows
„„
3. Инсталиране на TensorFlow:
Сега инсталирайте TensorFlow, използвайки pip:
„ш“
pip инсталирайте tensorflow
„„
3. Здравей, свят с TensorFlow
След като TensorFlow е инсталиран, нека създадем прост Python скрипт, за да проверим инсталацията. Създайте нов Python файл и го наречете `hello_tensorflow.py`.
„`python
импортирайте tensorflow като tf
Създайте константа
hello = tf.constant('Здравей, TensorFlow!')
Стартиране на сесия
с tf.Session() като sess:
резултат = sess.run(здравей)
печат (резултат)
„„
Адаптирайте кода според TensorFlow версия 2.x:
„`python
импортирайте tensorflow като tf
Създайте константа
hello = tf.constant('Здравей, TensorFlow!')
Изпълнява се с нетърпеливо изпълнение (включено по подразбиране)
печат(hello.numpy())
„„
Запазете файла, след което изпълнете:
„ш“
python hello_tensorflow.py
„„
4. Разбиране на тензорите и основните операции
Тензорите са основната структура от данни в TensorFlow, представляващи многомерни масиви. Ето няколко примера, които ще ви помогнат да разберете тензорите:
„`python
импортирайте tensorflow като tf
Създаване на тензори
скалар = tf.constant(7) скалар
вектор = tf.constant([1, 2, 3]) вектор
матрица = tf.constanta([[1, 2], [3, 4]]) матрица
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) 3D тензор
print(f'Скалар: {скалар}')
печат(f'Вектор: {вектор}')
print(f'Матрица: {матрица}')
печат(f'Тензор 3D: {тензор3d}')
„„
За да извършите основни операции с тензори:
„`python
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
Операция за събиране
добавяне = tf.add(a, b)
Операции за умножение на матрици
mul = tf.matmul(a, b)
print(f'Добавяне: {добавяне}')
print(f'Умножение на матрици: {mul}')
„„
5. Създаване на опростен модел на невронна мрежа
Следващата стъпка е да създадем прост модел на невронна мрежа. Ще изградим модел за класификация на изображения, използвайки набора от данни MNIST, база данни с ръкописни изображения на цифри. Нека започнем:
„`python
импортирайте tensorflow като tf
от tensorflow.keras импортиране на набори от данни, слоеве, модели
Изтегляне на набора от данни MNIST
(изображения_на_влак, етикети_на_влак), (тестови_изображения, етикети_на_влак) = datasets.mnist.load_data()
Нормализиране на изображението
изображения_на_влак, тестови_изображения = изображения_на_влак / 255.0, тестови_изображения / 255.0
Изработване на модел
модел = модели.Последователен([
слоеве.Изравняване(входна_форма=(28, 28)),
layers.Dense(128, activation='relu'),
слоеве.Плътен(10)
])
Компилация на модел
model.compile(optimizer='adam',
загуба=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
Обучение на модела
model.fit(изображения_на_влак, етикети_на_влак, епохи=5)
Тестване на модела
test_loss, test_acc = model.evaluate(тестови_изображения, тестови_етикети)
print(f'Точност на теста: {test_acc}')
„„
Обяснение:
– Набори от данни: Импортираме и зареждаме набора от данни MNIST.
– Предварителна обработка: Нормализиране на набора от данни чрез разделяне на стойностите на пикселите на 255.
– Модел: Дефинираме прост модел с два слоя. Първият слой е слой „Flatten“, който преобразува 2D изображението в 1D масив. Вторият слой е слой „Dense“ със 128 неврона и „relu“ като активираща функция, а последният е слой „Dense“ с 10 неврона, представляващи 10 класа.
– Компилиране: Компилираме модела, използвайки оптимизатора `adam` и `SparseCategoricalCrossentropy` като функция на загуба.
– Обучение: Обучете модела в продължение на 5 епохи.
– Оценка: Оценете модела спрямо тестови данни.
6. Запазване и зареждане на модели
След като обучавате модел, може да искате да го запазите за по-късна употреба, без да се налага да го обучавате отново. Ето как да запазите и заредите модел:
„`python
Запазване на модела
модел.запазване('моят_модел.h5')
Зареждане на модел
нов_модел = tf.keras.models.load_model('моят_модел.h5')
Проверка на заредения модел
загуба, acc = new_model.evaluate(тестови_изображения, тестови_етикети)
print(f'Точност на заредения модел: {acc}')
„„
Заключение
Това ръководство предоставя подробно въведение в начинаещите с TensorFlow. Разгледахме инсталацията, основните тензорни операции и изграждането на прост модел на невронна мрежа, използвайки набора от данни MNIST. TensorFlow предлага много разширени възможности за изследване, като например разширена обработка на данни, по-сложни модели и използване на TensorFlow на устройства като TPU и GPU. Надяваме се, че този урок ще ви помогне да започнете в света на машинното обучение с TensorFlow.