Tensorflow очень серьезно относится к структуре: нам нужно построить структуру нейронной сети, прежде чем мы сможем вводить числа и запускать структуру.
узнать это сегодняTensorflow
Простой пример
1. Создайте данные
Во-первых, вам нужно загрузитьtensorflow
иnumpy
два модуля и использоватьnumpy
для создания данных.
import tensorflow as tf
import numpy as np
# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3
2. Построить модель
использоватьtf.Variable
создать описаниеy
параметр.
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y = Weights*x_data + biases
3. Ошибка расчета
Рассчитайте фактическое значение и исходную ошибку.
loss = tf.reduce_mean(tf.square(y-y_data))
4. Ошибка распространения
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
5. Обучение
Пока мы только построили структуру нейросети и не использовали эту структуру, перед использованием этой структуры мы должны инициализировать все ранее определенныеVariable
, поэтому следующий абзац очень важен!
# init = tf.initialize_all_variables() # tf 马上就要废弃这种写法
init = tf.global_variables_initializer() # 替换成这样就好
Далее создаем сессиюSession
.
sess = tf.Session()
sess.run(init) # Very important
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases))
6. Запустите код
Запустите код, скриншот выглядит следующим образомМы видим, что значение этой первичной функцииWeights
иbiases
Получилось два случайных значения.через 200 раз обучения каждый раз ближе к исходному значению, то есть0.1
и0.3
.
Полный код выглядит следующим образом:
from __future__ import print_function
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
import numpy as np
# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3
### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y = Weights*x_data + biases
loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
### create tensorflow structure end ###
sess = tf.Session()
# tf.initialize_all_variables() no long valid from
# 2017-03-02 if using tensorflow >= 0.12
if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
init = tf.initialize_all_variables()
else:
init = tf.global_variables_initializer()
sess.run(init)
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases))
благодарный
Уведомление об авторских правах©Технический рай ДжиммиБесплатная перепечатка - некоммерческая - не производная - сохранить авторство(лицензия Creative Commons 4.0).