Notas de estudo 1.3 do TensorFlow2.0: explicação básica três da função

Podemos usar a função tf.GradientTape () na estrutura with para realizar a operação de derivação de uma determinada função para os parâmetros especificados.
Insira a descrição da imagem aqui Com a função variável que acabamos de mencionar, podemos realizar a operação de derivação da função de perda perda para o 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)

Neste exemplo, o valor inicial de w é 3,0, a função de perda é o quadrado de w, a derivada da função de perda para w é 2w e o valor inicial w = 3,0 é trazido para o resultado é 6,0
Insira a descrição da imagem aqui
enumerar significa enumeração, ele pode ser enumerado em cada elemento e corresponder ao número de índice correspondente na frente do elemento, combinado em um elemento de índice, frequentemente usado em um loop for
Insira a descrição da imagem aqui

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

Neste exemplo, enumerar é o nome da lista entre parênteses, i aceita o número do índice e o elemento aceita o elemento. O
Insira a descrição da imagem aqui
número do índice 0 corresponde à string um O
número do índice 1 corresponde à string dois O
número do índice 2 corresponde à string três

No problema de classificação, costumamos usar códigos one-hot para representar rótulos . Por exemplo, na classificação da íris anterior, se o rótulo for 1, significa que o resultado da classificação é íris variegada e é 0 1 0 na forma de códigos one-hot. Isso pode representar a probabilidade de cada categoria, ou seja, 0% pode ser 0 Setaria iris, 100% pode ser 0 íris variegada, 0% pode ser 2 Virginia iris
Insira a descrição da imagem aquiTensorFlow fornece a função one_hot, você pode alterar Os dados a serem convertidos são convertido diretamente em um formulário de código
Insira a descrição da imagem aqui

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 exemplo, existem 3 categorias, um conjunto de rótulos é 1, 0 e 2, para convertê-los em códigos one-hot, use a função tf.one_hot, a primeira variável grava os rótulos de dados a serem convertidos e a segunda variável escreve várias categorias. Atribua um valor de 3 categorias e converta rótulo 1 rótulo 0 rótulo 2 em um código one-hot, o resultado é 010, 100, 001

Para o problema de classificação, a rede neural completa a propagação direta e calcula a probabilidade de cada tipo de 1,01, 2,01, -0,66. Esses números só podem ser comparados com o rótulo de código único depois de estarem em conformidade com a distribuição de probabilidade.
Insira a descrição da imagem aqui
Portanto, usamos esta fórmula para fazer a saída em conformidade com a distribuição de probabilidade.
Insira a descrição da imagem aqui0,256 significa que a probabilidade de íris classe 0 é 25,6%.
0,695 significa que a probabilidade da íris de classe 1 é 69,5%.
0,048 significa 2 A probabilidade de ser semelhante à íris é 4,8%
. A função softmax é usada no TensorFlow. O cálculo desta fórmula
Insira a descrição da imagem aquipode fazer com que as n saídas y0, y1 ..., yn-1 de n categorias estão de acordo com a distribuição de probabilidade, ou seja, cada valor de saída torna-se 0 para valores de probabilidade entre 1, e a soma dessas probabilidades é 1

Insira a descrição da imagem aqui

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

No exemplo que fornecemos, os resultados da propagação direta da rede neural 1,01, 2,01, -0,66 formam um tensor y e o enviam para a função softmax. A saída são esses valores que estão em conformidade com a distribuição de probabilidade. A
Insira a descrição da imagem aqui
função assign_sub () é frequentemente usado para autoatualização de parâmetro, em espera O parâmetro de autoatualização w deve primeiro ser designado como um treinamento atualizável, ou seja, um tipo de variável, antes que a autoatualização possa ser implementada. Por
Insira a descrição da imagem aqui exemplo, neste exemplo, w deve primeiro ser definido como um tipo de variável e o valor inicial é 4. Para diminuir w, você pode usar a função w.assign_sub (). O valor em () é 1, que realiza a operação de w = w-1.
Resultado da operação :
o valor inicial 4 de w é diminuído em 1 e w é atualizado. Para 3
Insira a descrição da imagem aqui
tf.argmax () pode retornar o número do índice do valor máximo do eixo de operação especificado. Por
Insira a descrição da imagem aqui exemplo, para este tensor bidimensional argmax, axis = 0, o número do índice do valor máximo vertical é retornado , respectivamente,
1 2 5 8 e o valor máximo é 8., Seu número de índice é 3
2 3 4 7, o valor máximo é 7, seu número de índice é 3
3 4 3 2, o valor máximo é 4, seu número de índice é 1
argmax, axis = 1, ele retorna o número de índice horizontal máximo, respectivamente
1 2 3, o valor máximo é 3, seu número de índice é 2
2 3 4, o valor máximo é 4, seu número de índice é 2
5 4 3 , o valor máximo é 5 e seu número de índice é 0
8 7 2, o valor máximo é 8 e seu número de índice é 0

Acho que você gosta

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