Aprendizado profundo para iniciantes (1) Etapas básicas de desenvolvimento do TensorFlow para preparar dados e construir um modelo (avanço + reverso)

Este artigo usa regressão logística para ajustar dados bidimensionais como um exemplo para demonstrar as etapas básicas de desenvolvimento do tensorflow.

Exemplo: Encontre a lei de y≈2x a partir de um conjunto de dados aparentemente caóticos

Descrição de exemplo:

Suponha que haja um conjunto de conjuntos de dados cuja relação correspondente entre x e y seja y≈2x.

Existem aproximadamente quatro etapas no aprendizado profundo:

(1) Prepare os dados
(2) Construa o modelo
(3) Treinamento iterativo
(4) Use o modelo

1. Prepare os dados

Aqui, a fórmula y = 2x é usada como o corpo principal, e o "=" torna-se "≈" ao adicionar algum ruído de interferência

Implementação 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()

Insira a descrição da imagem aqui

2. Construir um modelo

O modelo é dividido em duas direções: para frente e para trás.

(1) Criação do modelo de encaminhamento

Use o seguinte código para criar um modelo de um único neurônio

# 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) Criação de modelo reverso

O processo de treinamento da rede neural de fluxo de dados tem duas direções (direta e reversa), uma para frente gerando um valor predito , a lacuna de comparação do valor observado, então o ajuste reverso em que os parâmetros e, em seguida, gera uma previsão direta e valores observados novamente Comparativo, tem Assim, o ciclo continua até que o parâmetro seja ajustado para um valor apropriado .
A retropropagação geralmente requer a introdução de alguns algoritmos para obter o ajuste correto dos 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()函数是一个封装好的梯度下降算法

PS:

  • O valor da taxa de aprendizagem geralmente é menor que 1. Quanto maior for o valor, maior será a velocidade do ajuste, mas não é preciso; quanto menor for o valor, maior será a precisão do ajuste, mas mais lenta será a velocidade. Portanto, a determinação da taxa de aprendizagem precisa ser determinada de acordo com a situação real.
  • A compreensão simples do algoritmo de descida de gradiente é que ele mudará a taxa de aprendizado de acordo com a velocidade dos parâmetros de aprendizado.

Acho que você gosta

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