Научите вас вводной платформе машинного обучения TensorFlow на небольшом примере.

машинное обучение искусственный интеллект TensorFlow Нейронные сети
Научите вас вводной платформе машинного обучения TensorFlow на небольшом примере.

TensorFlow — это программная библиотека с открытым исходным кодом, разработанная Google для машинного обучения. Он может работать с процессором и графическим процессором на всех платформах Linux, Windows и MacOS. Tensorflow можно использовать для разработки, реализации и обучения моделей глубокого обучения.

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

Набор данных по ирисам содержит 3 вида цветов, в том числе «Setosa», «Versicolor» и «Virginica». Чтобы определить каждый тип цветка, мы установили атрибуты 4 видов цветов, в том числеДлина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка. Далее мы будем использовать TensorFlow для построения нейронной сети для правильного определения видов радужной оболочки на основе этих факторов.

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

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

первый шаг

Во-первых, нам нужно прочитать данные в файле .csv и импортировать их. Библиотека Pandas легко справляется с этим.

Функция read_csv() в библиотеке Pandas прочитает файл и загрузит содержимое в указанную переменную. Для параметров функции нам нужно указать путь к файлу, а параметр names можно использовать для указания имени каждого столбца.

второй шаг

Все типы цветов в наборе данных закодированы как 0, 1 и 2. Нам нужно закодировать их как [1,0,0], [0,1,0] и [0,0,1], используя метод one hot. Это упростит обучение и оптимизацию сети, поскольку выходные данные сети также генерируются в одном горячем формате.

Затем нам нужно определить x, y обучающего набора и x, y тестового набора.

третий шаг

Затем необходимо определить заполнители для ввода (X), вывода (Y) и определить веса и смещения сети. Здесь у нас есть 4 столбца ввода, потому что набор данных имеет 4 функции и 3 столбца вывода для сопоставления 3 типов цветов. Форма заполнителя должна удовлетворять этому. Кроме того, форма весовой матрицы должна быть 4x3, а смещение должно быть вектором, равным 3, чтобы сопоставить входные данные с выходными (без скрытых слоев).

четвертый шаг

Затем нам нужно отправить вывод через функцию активации, здесь мы можем использовать функцию soft-max в Tensorflow. Для этой модели обучения нам нужно рассчитать стоимость модели, то есть сколько ошибок возникает на выходе модели, здесь мы вычисляем среднюю дисперсию. Затем мы можем обучить модель и использовать AdamOptimizer для снижения стоимости.

пятый шаг

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

Здесь мы проверяем, равен ли вывод, сгенерированный нашей моделью, фактическому результату (Y). Модель будет вычислять значение для каждого цветка, которое можно рассматривать как вероятность того, что это определенный цветок. Мы выбираем цветок с наибольшей вероятностью, и функция argmax возвращает индекс максимального значения. Помните, что результат в одном горячем формате, этот метод позволяет нам легко проверить правильность.

После этого нам нужно приступить к обучению модели. Перед этим нам сначала нужно инициализировать все глобальные переменные с помощью функции global_variables_initializer.

Шаг 6

Теперь приступаем к обучению модели. Каждое выполнение Tensor должно выполняться в сеансе Tensorflow. Итак, перед тренировкой нам нужно создать сессию, а после того, как вся работа будет сделана, нам нужно закрыть сессию.

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

Шаг 7

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

После 1000 итераций обучения можно получить точность 96,67%, что действительно впечатляет, а график изменения стоимости наглядно показывает огромное улучшение производительности модели после снижения стоимости в каждой итерации.

Эта статья может помочь новичкам в Tensorflow понять его концепцию на этом простом примере и открыть море звезд TensorFlow с этого момента.

Ниже приведен весь код Python для этого руководства, который можно найти в бесплатной среде.Мастер-станция ДжижиОтпишись сам:

import tensorflow as tf
import pandas as pd
from matplotlib import pyplot as plt

#从CSV读取数据
train_data = pd.read_csv("iris_training.csv", names=['f1', 'f2', 'f3', 'f4', 'f5'])
test_data = pd.read_csv("iris_test.csv", names=['f1', 'f2', 'f3', 'f4', 'f5'])

#将数据编码为独热
train_data['f5'] = train_data['f5'].map({0: [1, 0, 0], 1: [0, 1, 0], 2: [0, 0, 1]})
test_data['f5'] = test_data['f5'].map({0: [1, 0, 0], 1: [0, 1, 0], 2: [0, 0, 1]})

#分离训练数据
train_x = train_data[['f1', 'f2', 'f3', 'f4']]
train_y = train_data.ix[:, 'f5']

#分离测试数据
test_x = test_data[['f1', 'f2', 'f3', 'f4']]
test_y = test_data.ix[:, 'f5']

#输入和输出的文件夹
X = tf.placeholder(tf.float32, [None, 4])
Y = tf.placeholder(tf.float32, [None, 3])

#权重和偏差
weight = tf.Variable(tf.zeros([4, 3]))
bias = tf.Variable(tf.zeros([3]))

#运行激活函数后的输出
output = tf.nn.softmax(tf.matmul(X, weight) + bias)
#cost funciton
cost = tf.reduce_mean(tf.square(Y-output))
#train model
train = tf.train.AdamOptimizer(0.01).minimize(cost)

#检查成功与否
success = tf.equal(tf.argmax(output, 1), tf.argmax(Y, 1))
#c计算准确率
accuracy = tf.reduce_mean(tf.cast(success, tf.float32))*100

#初始化变量
init = tf.global_variables_initializer()

#启动TensorFlow会话
with tf.Session() as sess:
    costs = []
    sess.run(init)
    #训练模型1000次
    for i in range(1000):
        _,c = sess.run([train, cost], {X: train_x, Y: [t for t in train_y.as_matrix()]})
        costs.append(c)

    print("Training finished!")

    #绘制代价图表
    plt.plot(range(1000), costs)
    plt.title("Cost Variation")
    plt.show()
    print("Accuracy: %.2f" %accuracy.eval({X: test_x, Y: [t for t in test_y.as_matrix()]}))

Для этого урока Google ранее выпустила видеоверсию, мы сделали перевод, вы можете перейти на основной сайт Jizhi, чтобы увидеть:кликните сюда.


Преимущества новичка

Если вы новичок в машинном обучении, но хотите изучить знания искусственного интеллекта наиболее эффективным способом, у нас просто есть возможность бесплатно изучить ИИ, чтобы вы могли стать инженером ИИ с нуля до специалиста, не так ли? понимать?

Портал возможностей:кликните сюда! !

Это может быть лучший шанс вовремя успеть на автобус ИИ, не упустите его.