Notas de estudio 1.3 de TensorFlow2.0: explicación básica de la función tres

Podemos usar la función tf.GradientTape () en la estructura with para realizar la operación de derivación de una determinada función a los parámetros especificados.
Inserte la descripción de la imagen aquí Con la función variable que acabamos de mencionar, podemos realizar la operación de derivación de la función de pérdida pérdida al parámetro w

import tensorflow as tf

with tf.GradientTape() as tape:
    w = tf.Variable(tf.constant(3.0))
    loss = tf.pow(w, 2)
grad = tape.gradient(loss, w)
print(grad)

En este ejemplo, el valor inicial de w es 3.0, la función de pérdida es el cuadrado de w, la derivada de la función de pérdida av es 2w, y el valor inicial w = 3.0 se lleva al resultado es 6.0
Inserte la descripción de la imagen aquí
enumerar significa enumeración, se puede enumerar en cada elemento y hacer coincidir el número de índice correspondiente delante del elemento, combinado en un elemento de índice, a menudo utilizado en un bucle for
Inserte la descripción de la imagen aquí

seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
    print(i, element)

En este ejemplo, enumerar es el nombre de la lista entre paréntesis, i acepta el número de índice y el elemento acepta el elemento. El
Inserte la descripción de la imagen aquí
número de índice 0 corresponde a la cadena uno El
número de índice 1 corresponde a la cadena dos El
número de índice 2 corresponde a la cadena tres

En el problema de clasificación, a menudo usamos códigos one-hot para representar etiquetas . Por ejemplo, en la clasificación de iris anterior, si la etiqueta es 1, significa que el resultado de la clasificación es iris abigarrado y es 0 1 0 en la forma de códigos one-hot. Esto puede representar la probabilidad de cada categoría, es decir, 0% puede ser 0 iris Setaria, 100% puede ser 0 iris abigarrado, 0% puede ser 2 Virginia iris
Inserte la descripción de la imagen aquíTensorFlow proporciona la función one_hot, puede cambiar Los datos que se convertirán son convertido directamente en formato de código único
Inserte la descripción de la imagen aquí

import tensorflow as tf

classes = 3
labels = tf.constant([1, 0, 2])  # 输入的元素值最小为0,最大为2
output = tf.one_hot(labels, depth=classes)
print("result of labels1:", output)
print("\n")

Por ejemplo, hay 3 categorías, un conjunto de etiquetas es 1, 0 y 2, para convertirlas en códigos one-hot, use la función tf.one_hot, la primera variable escribe las etiquetas de datos que se convertirán y la segunda variable escribe varias categorías. Asigne un valor de 3 categorías y convierta la etiqueta 1 etiqueta 0 etiqueta 2 en un código único, el resultado es 010, 100, 001

Para el problema de clasificación, la red neuronal completa la propagación hacia adelante y calcula la probabilidad de cada tipo de 1.01, 2.01, -0.66. Estos números solo se pueden comparar con la etiqueta de código único una vez que se ajustan a la distribución de probabilidad.
Inserte la descripción de la imagen aquí
Por lo tanto, usamos esta fórmula para hacer que la salida se ajuste a la distribución de probabilidad.
Inserte la descripción de la imagen aquí0.256 significa que la probabilidad de iris de clase 0 es 25.6%.
0.695 significa que la probabilidad de iris de clase 1 es 69.5%.
0.048 significa 2 La probabilidad de iris similar es 4.8%
. La función softmax se usa en TensorFlow. El cálculo de esta fórmula
Inserte la descripción de la imagen aquípuede hacer que las n salidas y0, y1 ..., yn-1 de n categorías se ajustan a la distribución de probabilidad, es decir, cada valor de salida se convierte en 0 a valores de probabilidad entre 1, y la suma de estas probabilidades es 1

Inserte la descripción de la imagen aquí

import tensorflow as tf

y = tf.constant([1.01, 2.01, -0.66])
y_pro = tf.nn.softmax(y)

print("After softmax, y_pro is:", y_pro)  # y_pro 符合概率分布

print("The sum of y_pro:", tf.reduce_sum(y_pro))  # 通过softmax后,所有概率加起来和为1

En el ejemplo que damos, los resultados de propagación hacia adelante de la red neuronal 1.01, 2.01, -0.66 forman un tensor y, y lo envían a la función softmax. La salida son estos valores que se ajustan a la distribución de probabilidad. La
Inserte la descripción de la imagen aquí
función assign_sub () se utiliza a menudo para la actualización automática de parámetros, en espera El parámetro de actualización automática w debe designarse primero como un entrenamiento actualizable, es decir, un tipo de variable, antes de que se pueda implementar la actualización automática. Por
Inserte la descripción de la imagen aquí ejemplo, en este ejemplo, w debe primero definirse como un tipo de variable, y el valor inicial es 4. Para disminuir w, puede usar la función w.assign_sub (). El valor en () es 1, que realiza la operación de w = w-1.
Resultado de la operación :
El valor inicial 4 de w se reduce en 1, y w se actualiza. Para 3
Inserte la descripción de la imagen aquí
tf.argmax () puede devolver el número de índice del valor máximo del eje de operación especificado. Por
Inserte la descripción de la imagen aquí ejemplo, para este tensor bidimensional argmax, eje = 0, se devuelve el número de índice del valor máximo vertical , respectivamente,
1 2 5 8 y el valor máximo es 8., Su número de índice es 3
2 3 4 7, el valor máximo es 7, su número de índice es 3
3 4 3 2, el valor máximo es 4, su número de índice es 1
argmax, eje = 1, devuelve el número de índice horizontal máximo, respectivamente
1 2 3, el valor máximo es 3, su número de índice es 2
2 3 4, el valor máximo es 4, su número de índice es 2
5 4 3 , el valor máximo es 5 y su número de índice es 0
8 7 2, el valor máximo es 8 y su número de índice es 0

Supongo que te gusta

Origin blog.csdn.net/weixin_44145452/article/details/112919632
Recomendado
Clasificación