Olá e bem vindo a este tutorial agora vamos fazer essa segunda função para inicializar os pesos.
E este será usado para obter uma aprendizagem ideal.
Na verdade, esses pesos.
Assim, a segunda função que vamos chamar de peso sublinhado nela e levará como argumento o
objeto e que representará a rede neural.
Então é tudo.
E depois cólon e agora vamos entrar na função para definir o que queríamos fazer.
queríamos fazer é inicializar os pesos da nova rede de forma a obter uma aprendizagem ideal.
Então, basicamente, o que
Portanto, isso não parece particularmente intuitivo.
Isto é baseado em trabalhos de pesquisa e experiências.
Vamos inicializar os pesos de uma maneira específica que não vimos antes, mas acredite em
mim, otimizando o processo de aprendizagem.
Então, acabamos de implementar sem entrar nos detalhes de por que inicializamos os pesos desta forma.
um truque que será usado mais tarde para fazer a distinção entre a convolução
e a conexão completa, porque você sabe que nossa AI terá olhos e, portanto, terá algumas camadas convolutivas.
E então vamos começar usando
E é claro que também terá algumas camadas totalmente conectadas e teremos uma inicialização diferente
dos pesos para esses dois tipos de conexões.
Então, vamos usar esse truque para separar esses dois tipos de conexões e
depois usaremos algumas condições para obter a inicialização diferente para cada uma dessas conexões.
Então, esse truque é criar uma nova variável que vamos chamar de sobrenome e que
será chamado para um objeto e representa a rede neural.
Mas é um objeto que veremos mais tarde.
E nós vamos obter o atributo especial deste objeto, que será Kolesnik com
duplo sublinhado primeira classe duplo sublinhado ponto duplo sublinhado novamente nome e quase aí.
Outro sublinhado duplo.
Então, esse é um truque muito feio para procurar o tipo de conexão do nosso novo objeto de rede, mas isso nos dará
exatamente o que você quer.
Você vai ver que vai dar sentido quando começamos se as condições.
E, a propósito, falar de condições, podemos detê-las agora.
E então, o que vamos fazer agora é iniciar a primeira condição que nos dará o primeiro caso.
Isso é se a conexão é uma convolução e, portanto, para escrever esta condição, se o nome da classe estiver
bem.
Aqui, usamos um método que o método de busca encontra e dentro quando colocado entre aspas para convolução.
E, portanto, se o nome da classe encontrar pode é que vamos fazer diferente do menos um que é realmente
se tivermos uma convolução porque Manasquan significa não.
Bem, nesse caso, faremos uma inicialização especial dos pesos.
Então, esta condição aqui significa se temos uma conexão de convolução.
Então, nesse caso, o que fazemos é executar esta inicialização específica da maneira que queremos fazer.
E é assim que todas as coisas não intuitivas virão.
Começaremos criando uma variável que vamos chamar.
E esta forma de corte, de modo que o peso destaca a forma será uma lista que basicamente contém a forma dos
pesos em nossa nova rede.
Para que possamos usar a função de lista para criar uma lista.
E dentro, vamos colocar na rede neural o peso que será o peso da rede
neural.
em seguida, o tamanho do tamanho nos dará a forma desses pesos na conexão de convolução.
Mas na conexão de convolução e para obter a forma desses pesos, usamos outro atributo que é esse dado e,
Então, agora a forma de peso contém em uma lista a forma dos pesos e as conexões de convolução
de nossa rede e.
Tudo bem, então temos forma de peso, então, para inicializar os pesos desta conexão de convolução.
Nós vamos precisar de dois valores.
Primeiro é o produto da primeira dimensão pela segunda nomeação por esta terceira dimensão.
agora e então também precisaremos obter o tempo dos zeros tempos antigos pela segunda vez e
às vezes a terceira dimensão e depois usaremos esses dois valores na competição de como inicializamos o pesos.
Então, é isso que vamos conseguir
Então, obtenha isso através deste primeiro produto.
Nós chamamos isso de diversão e isso será igual ao produto e vamos usar a função prod, que é
uma função de não-tailandês que tem um atalho e P So MP que PRUD e dentro da peça que nós inserimos o
que queremos fazer produtos.
E, como dissemos, é o diamante e um e dois e três da nossa forma de peso.
E para obter isso, podemos dar uma forma de onda e obter os índices desses três motores de linha.
E assim estabelecemos Simonton um até 10 polegadas e três incluídos.
Então uma masmorra para excluídos.
E é assim que podemos obtê-lo para o limite superior aqui não está incluído.
Então, é isso que queremos, então, o mesmo para se divertir, como dissemos que o Fan vai ser o produto do dano na
dimensão do tempo zero duas vezes que mencionei três.
E aqui podemos obter indexados de dois incluídos para quatro excluídos.
Então, isso será como o produto do tempo e dois e três e, então, podemos
multiplicá-lo pelo design e zero, o que podemos acessar com cerco zero do índice zero.
é uma vez duas vezes em três e logo abaixo, temos zero vezes duas vezes em três da nossa lista de pesos de pesagem.
Então, para resumir, esta
Tudo bem, então, agora vamos usar esses dois valores, fã e avançar para
a inicialização, porque vamos calcular um novo valor, pois vamos chamar W bound e isso é igual à raiz
quadrada que podemos obter com uma função e P de e por isso como qr t.
Segundo, como antes.
Então, a raiz quadrada de 6 dividida por fanning out.
Então, o fã, vamos nos afastar de que conseguimos que este W aqui embaixo represente de alguma forma o tamanho das dezenas
de pesos.
E por que conseguimos isso.
É porque, então, o que estávamos prestes a fazer agora é que queremos gerar pesos
aleatórios inversamente proporcionais ao tamanho do tensor de pesos.
Porque, de fato, o que estamos prestes a fazer agora é levar nossa nova rede e, em seguida, obter o seu peso.
Então, ao seguir tomando o peso do atributo, acesse seus dados que são o próprio tensor.
E, a partir desse tensor de pesos, vamos gerar alguns pesos aleatórios que são
inversamente proporcionais ao tamanho dos pesos dos tensores.
que colocar um limite inferior que será menos W ligado e o limite superior que será mais W de volta.
E assim, nesta função de uniforme agora temos
OK, então é para os pesos.
E agora precisamos inicializar o viés e boas notícias para o viés.
Vai ser muito mais simples.
Vamos inicializá-los com zeros, para que essas aquisições os levem do nosso modelo de curso, que é a
nossa nova rede.
E, em seguida, o atributo para o viés é o viés, em seguida, o mesmo com o acesso aos dados.
preencher o tensor de polarização com zeros, bem com as regras que precisamos para especificar que queremos preenchê-lo com zero.
E então, vamos usar um método que é o método de sublinhado de Phil, que, como você pode
ter adivinhado, é usado para
E por isso estou colocando aqui Zero.
Tudo bem, para resumir, geramos alguns pesos aleatórios inversamente proporcionais ao tamanho dos
pesos dos tensores e inicializamos o dispositivo com zeros.
Tudo bem, então foi para a ação Inicializar nas conexões de convolução.
Agora, precisamos fazer o mesmo para a conexão completa.
mesmo fizermos esse truque, usamos o nome da primeira classe que é essa variável que contém os diferentes nomes das conexões.
E então vamos adicionar novas condições e, se o
Então, se o nome da classe o mesmo, usamos o método de busca ao qual, ao colocar as citações desta vez, uma conexão completa
que é uma conexão linear clássica em uma rede neural artificial clássica.
E assim, o nome para isso é linear e dizendo que vamos usar esse truque para dizer que queremos
que seja diferente de menos um, então esse é o objetivo final da classe. A linho fino é diferente de menos
um se a conexão estiver em Aí, se é que temos uma conexão clássica.
Então, nesse caso, como vamos inicializar os pesos.
Bem, será o mesmo.
Nós vamos introduzir o Voivode Whaleship que não irá apagar o primeiro, porque queremos, neste
caso ou caso, por isso não será o mesmo, então podemos reverter totalmente o mesmo, então,
vamos apresentar um fã em variável que desta vez não será igual ao produto dessas três
dimensões.
Mas, na verdade, desta vez será igual a designar uma menção.
E isso é porque, para a conexão completa, há menos conexões do que em uma conexão de convolução.
Agora, isso é uma palestra de intuição no final e na seção CNN há menos menção para
uma conexão completa do que para uma convolução.
Então, basicamente, nós apenas tomamos esse tempo em um ano e depois dizemos que vamos ter uma
variável de fan out que então usará para calcular W. os limites e a dominação do ventilador vão ser a forma de peso do
índice 0.
Esse é o diamante zero.
Tudo bem então para o GWB e vai ser o mesmo.
Será a raiz quadrada de 6 dividida pela soma do crime e descobrirá.
Então vamos lá.
tipo de inicialização desta vez com um ventilador diferente e ventilar e, portanto, diferente w que .
E então a boa notícia é que é exatamente o mesmo que anteriormente usamos a função uniforme para os pesos e a função
de preenchimento para o viés para obter o mesmo
Então, esse é o mesmo princípio que é a mesma idéia.
A única coisa que muda aqui é que temos menos dominações para a conexão
completa e, portanto, uma consideração mais simples sobre este limite dos pesos aqui para gerar esses pesos aleatórios.
Mas a boa notícia é que agora não é só esses pesos e funciona muito.
Mas agora temos duas ferramentas.
E então estamos prontos para começar a construir o cérebro.
Então eu não posso esperar.
Esta será, naturalmente, a parte mais emocionante.
Isso foi apenas para se aquecer e nos preparar para o grande.
Então, vamos cuidar disso no próximo tutorial.
Bem, na verdade, vai levar vários tutoriais, é claro.
Vamos começar por fazer os olhos.
E então lembre-se de que vamos adicionar uma ilustração para aprender as propriedades temporais da entrada e
depois cuidaremos do ator e do crítico.
E é aí que vamos usar isso para funcionar de forma normalizada, vem o inicializador e os pesos nela.
Então eu não posso esperar para fazer isso.
Nós vamos fazer algo muito poderoso agora.
Então prepare-se para isso.
Até então, desfrute da AI.