Aprendizaje profundo para principiantes (1) Pasos de desarrollo básicos de TensorFlow para preparar datos y crear un modelo (avance + retroceso)

Este artículo utiliza la regresión logística para ajustar datos bidimensionales como ejemplo para demostrar los pasos básicos de desarrollo de tensorflow.

Ejemplo: Encuentre la ley de y≈2x a partir de un conjunto de datos aparentemente caóticos

Descripción de ejemplo:

Suponga que hay un conjunto de conjuntos de datos cuya relación correspondiente entre xey es y≈2x.

Hay aproximadamente cuatro pasos en el aprendizaje profundo:

(1) Preparar datos
(2) Construir modelo
(3) Entrenamiento iterativo
(4) Usar modelo

1. Prepare los datos

Aquí, la fórmula y = 2x se usa como el cuerpo principal, y el "=" se convierte en "≈" agregando algo de ruido de interferencia

Implementación de código específico:

#导入所需要的包
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

#生成模拟数据
train_X = np.linspace(-1, 1, 100) #在[-1,1]之间生成100个数作为x
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # 将x乘以2,再加上一个[-1,1]区间的随机数*0.3作为加入的噪声

#通过画散点图显示产生的模拟数据点
plt.plot(train_X, train_Y, 'ro', label='Original data') #画出散点图
plt.legend()#使上述代码产生效果:如图例的名称
plt.show()

Inserte la descripción de la imagen aquí

2. Crea un modelo

El modelo se divide en dos direcciones: adelante y atrás.

(1) Creación de modelos avanzados

Utilice el siguiente código para crear un modelo de una sola neurona

# X,Y为占位符
X = tf.placeholder("float") # 代表x的输入
Y = tf.placeholder("float") # 代表对应的真实值y

# 模型参数
W = tf.Variable(tf.random_normal([1]), name="weight") # w初始化为[-1,1]的随机数,形状为一维的数字
b = tf.Variable(tf.zeros([1]), name="bias") # b的初始化是0,形状为一维的数字

# 前向结构
z = tf.multiply(X, W)+ b # x*w+b

(2) Creación de modelo inverso

El proceso de entrenamiento de la red neuronal de flujo de datos tiene dos direcciones (hacia adelante y hacia atrás), una hacia adelante que genera un valor predicho , la brecha de comparación del valor observado, luego el ajuste inverso en el que se encuentran los parámetros , y luego genera una nueva predicción y los valores observados hacia adelante Comparativo, tiene sido así, el ciclo continúa hasta que el parámetro se ajusta a un valor apropiado .
La retropropagación a menudo requiere la introducción de algunos algoritmos para lograr el ajuste correcto de los parámetros.

#反向优化
cost =tf.reduce_mean( tf.square(Y - z)) #cost是生成的预测值与真实值的平方差
learning_rate = 0.01 #设定学习率为0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #GradientDescentOptimizer()函数是一个封装好的梯度下降算法

PD:

  • El valor de la tasa de aprendizaje es generalmente menor que 1. Cuanto mayor sea el valor, mayor será la velocidad del ajuste, pero no es preciso; cuanto menor sea el valor, mayor será la precisión del ajuste, pero más lenta será la velocidad. Por lo tanto, la determinación de la tasa de aprendizaje debe determinarse de acuerdo con la situación real.
  • La simple comprensión del algoritmo de descenso de gradiente es que cambiará la tasa de aprendizaje de acuerdo con la velocidad de los parámetros de aprendizaje.

Supongo que te gusta

Origin blog.csdn.net/qq_45154565/article/details/109635933
Recomendado
Clasificación