WEBVTT

00:00.530 --> 00:02.950
Olá e bem vindo a este tutorial do Python.

00:02.990 --> 00:08.520
Então, agora, o próximo passo é fazer com que os neurónios funcionem, o que nos dará o que queremos.

00:08.540 --> 00:14.130
Esse é o número de neurônios neste enorme vetor depois que as convoluções são aplicadas.

00:14.300 --> 00:19.640
Essa é a única informação faltante que precisamos agora e vamos buscá-la com a função.

00:19.700 --> 00:23.930
Então, vamos fazer essa função que vamos chamar de conta.

00:24.280 --> 00:27.570
E esses neurônios centrais são muito simples.

00:27.830 --> 00:32.220
E o que esta função de contagem de neurônios vai tomar como argumentos.

00:32.510 --> 00:39.450
porque esse número de neurônios de saída na camada de achatamento realmente depende apenas de uma coisa.

00:39.450 --> 00:44.540
Bem, ele vai levar o próprio objeto, mas então vai levar outra coisa

00:44.660 --> 00:50.840
Depende das dominações da imagem de entrada original, a qual vai no início da

00:50.840 --> 00:51.930
rede neural.

00:52.160 --> 00:58.370
E, portanto, o único argumento que precisamos no momento é que o tempo menciona o tempo das imagens de entrada.

00:58.370 --> 01:03.410
Portanto, vamos dar um nome a esse argumento que representa o diamante e da imagem de entrada.

01:03.520 --> 01:06.790
E nós vamos chamá-lo de imagem.

01:07.220 --> 01:07.690
Tudo bem.

01:07.850 --> 01:14.720
que as dimensões reais das imagens de entrada provenientes da Dume serão 80 por 80.

01:14.720 --> 01:16.850
E posso dizer-lhe agora

01:16.850 --> 01:23.330
Vamos reduzir o tamanho das imagens originais para 80 por 80 e esse será o formato

01:23.390 --> 01:26.270
das imagens que entrarão na rede neural.

01:26.270 --> 01:32.300
Então, a imagem deles será realmente uma 80 80 e a mesma corresponde ao fato de que estamos trabalhando com

01:32.300 --> 01:33.750
imagens em preto e branco.

01:33.830 --> 01:41.040
Isso é com apenas um canal para que a imagem deles seja correlacionada com o total de um oitenta e 80.

01:41.280 --> 01:41.560
Tudo bem.

01:41.560 --> 01:43.590
Então, esse é o único argumento que precisamos.

01:43.660 --> 01:45.670
E agora vamos analisar os neurônios.

01:45.850 --> 01:47.280
Então, como você vai fazer isso?

01:47.500 --> 01:51.110
Bem, antes de tudo, na verdade não temos nenhuma imagem de entrada agora.

01:51.250 --> 01:54.070
Não temos nenhuma imagem de doom que possamos importar.

01:54.070 --> 01:55.330
Nós vamos fazer isso mais tarde.

01:55.540 --> 02:01.240
Então, a primeira coisa que temos a fazer é criar uma imagem falsa, mas isso fez introns 80 em 80.

02:01.240 --> 02:06.160
essa imagem falsa com pixels falsos e isso ainda nos dará eventualmente o número

02:06.160 --> 02:12.280
que queremos porque esse número depende apenas das dimensões e não dos pixels que estão dentro das imagens.

02:12.280 --> 02:13.320
Nós vamos criar

02:13.330 --> 02:15.640
Então, isso apenas cria uma imagem falsa para começar.

02:15.730 --> 02:18.520
E então calcularemos o número de neurônios que queremos.

02:18.520 --> 02:23.860
Então, o truque para criar uma imagem falsa é bem, vamos chamá-lo de x.

02:23.890 --> 02:30.700
Em primeiro lugar, e então, vamos usar a tocha que Rand porque você sabe que vamos colocar alguns

02:30.700 --> 02:37.200
pixels aleatórios nessas imagens, que estamos usando essas funções aleatórias do Torche, que é a função Rand.

02:37.250 --> 02:42.740
Então dentro, vamos entrar, como você pode ver as condenações das imagens.

02:42.850 --> 02:44.400
Esse é um 80 80.

02:44.560 --> 02:50.500
Mas desde que vamos colocar essa imagem na rede neural e, como você se lembra, a rede neural só

02:50.500 --> 02:55.170
pode aceitar lotes de estados de entrada que estão aqui lotes de imagens de entrada.

02:55.370 --> 03:00.600
Nós vamos criar esses diamantes falsos nos quais podemos fazer diretamente essa função de execução.

03:00.670 --> 03:05.720
Na verdade, apenas comece com o que corresponderá ao lote e, então,

03:05.730 --> 03:11.070
podemos apenas colocar tudo 188 o correspondente às dominações da imagem de entrada.

03:11.110 --> 03:16.980
E, como você entendeu, essas indicações estão contidas nesta imagem, o argumento que representa

03:16.980 --> 03:19.330
essa tabela 1 80 80.

03:19.420 --> 03:23.290
Então, precisamos apenas adicionar imagens.

03:23.620 --> 03:29.410
Mas, para passar os elementos da tabela porque você sabe agora, a imagem deles é um duplo

03:29.410 --> 03:31.940
como uma lista de argumentos de uma função.

03:32.020 --> 03:39.460
Precisamos adicionar aqui antes de imaginar que existe antes que a loja da Apple, a loja permitirá passar os elementos

03:39.550 --> 03:44.100
do imaginário para a Apple como uma lista de argumentos para a função.

03:44.170 --> 03:49.600
E, como você pode ver, é exatamente o que é especificado aqui com a loja e o diamante.

03:49.930 --> 03:56.640
Tudo bem para que crie uma imagem de pixels falsos que não terão nada a ver com as imagens.

03:56.800 --> 04:01.720
capazes de obter o número final de neurônios e agora a última

04:01.720 --> 04:11.080
coisa que precisamos lembrar é converter esse vetor de entrada em uma variável de tocha porque isso vai entrar na rede neural.

04:11.380 --> 04:13.060
Mas, novamente, ainda seremos

04:13.060 --> 04:13.380
Tudo bem.

04:13.390 --> 04:20.650
Então, isso agora representa uma imagem de entrada de pixels aleatórios que acabou de ser convertido em um viável e que

04:20.650 --> 04:22.440
agora entrará na rede neural.

04:22.570 --> 04:28.330
E, mais especificamente, as camadas convolutivas da rede neural porque, como só precisamos

04:28.330 --> 04:34.100
do número de neurônios após a aplicação das circunvoluções, iremos até as circunvoluções 3.

04:34.210 --> 04:36.440
Então, até a terceira camada convolucional.

04:36.580 --> 04:39.630
E não entraremos nas duas conexões completas aqui.

04:39.850 --> 04:45.490
E isso ocorre porque o número de neurônios que queremos é entre a convolução 3 e f. c 1.

04:45.520 --> 04:52.120
Tudo bem agora, agora que temos uma imagem de entrada com as menções certas Bem, é hora de propagar

04:52.180 --> 04:58.330
esta imagem na rede neural para alcançar a camada achatada, então vamos conseguir os neurônios na camada achatada

04:58.330 --> 05:03.850
e nós vamos apenas obter a A informação que queremos é o número de neurônios nesta

05:03.850 --> 05:04.750
camada achatada.

05:04.990 --> 05:08.950
Então, agora temos que fazer é exatamente o que fazemos em uma função avançada.

05:08.950 --> 05:14.560
Precisamos propagar os sinais na rede neural, mas apenas nas camadas convolutivas até alcançar

05:14.560 --> 05:16.120
a camada de inundação.

05:16.330 --> 05:17.360
Então vamos fazer isso.

05:17.360 --> 05:25.660
Vamos atualizar x agora x é a imagem de entrada e com o segundo X aqui o X se tornará bem

05:25.660 --> 05:27.050
a primeira camada convolucional.

05:27.310 --> 05:32.930
E agora o que temos a fazer é o primeiro passo do processo de etapas, aplicamos a deconvolução nas

05:32.950 --> 05:33.790
imagens de entrada.

05:33.850 --> 05:40.960
Então, o segundo passo, aplicamos a poda de mistura para as imagens e inserções enroladas que ativamos

05:40.960 --> 05:48.160
os neurônios nessas imagens enroladas e o x se tornará este primeiro convolucional, eles são compostos por

05:48.160 --> 05:50.590
todas essas piscinas enroladas Energis.

05:51.010 --> 05:56.840
Então, vamos fazer esta primeira etapa, aplique a primeira convolução convolução para as imagens de entrada.

05:57.040 --> 06:07.540
Então, o que fazemos é levar a nossa convolução um auto que convo Lucian que vamos aplicamos às nossas imagens de

06:07.550 --> 06:11.360
entrada que até agora são representadas por x.

06:11.500 --> 06:14.290
Então, esse é o primeiro que primeiro a fazer isso agora.

06:14.320 --> 06:22.630
Segundo passo, vamos aplicar spool para nossas imagens complicadas retornadas por convolução quando X e dois clímax puxando Bem,

06:22.640 --> 06:26.880
vamos tomar uma função a partir do módulo funcional.

06:26.920 --> 06:34.610
Então, tomamos o short cut do que isso e então vamos usar a função Max pool para D.

06:34.810 --> 06:42.340
auto-convolução um X entre parênteses do máximo de puxar para o porque jogamos depois puxar para as imagens enroladas.

06:42.360 --> 06:45.220
Esse é o único que colocamos a

06:45.750 --> 06:53.140
Mas esta próxima função requer argumentos adicionais que são primeiro o tamanho do kernel.

06:53.190 --> 06:59.190
Então, novamente, esse é o tamanho da janela que desliza através de suas imagens e isso levará o máximo

06:59.190 --> 07:00.710
de pixels em cada slide.

07:00.830 --> 07:06.750
Então, isso ainda irá detectar os recursos porque os recursos estão associados a um alto valor do

07:06.840 --> 07:07.750
pixel nas matrizes.

07:07.890 --> 07:09.580
Como você diz palestras de intuição.

07:09.780 --> 07:14.020
Então, essa primeira necessidade humana documentada de entrada é esse tamanho do kernel.

07:14.100 --> 07:15.560
E nós vamos levar três.

07:15.660 --> 07:17.650
Essa é uma escolha comum para o tamanho do kernel.

07:17.940 --> 07:25.200
E então precisamos colocar os passos que você conhece em quantos pixels ele vai deslizar nas imagens.

07:25.200 --> 07:27.560
E vamos dar um passo de dois.

07:27.610 --> 07:29.400
Mais uma vez, essa é uma escolha comum.

07:29.820 --> 07:30.670
Então vamos lá.

07:30.690 --> 07:32.530
Agora o segundo passo é feito.

07:32.620 --> 07:38.910
vamos passar para o terceiro passo, que é para ativar todos os neurônios neste pool e imagens enroladas.

07:38.910 --> 07:39.580
E agora

07:39.610 --> 07:46.090
E esta primeira camada de convolução e para fazer isso de novo, vamos aplicar uma função a tudo isso.

07:46.170 --> 07:51.960
E aqui e voltando novamente, porque vamos tomar outra função que, como você pode ter adivinhado,

07:52.050 --> 07:55.170
será uma função de ativação, mas qual delas.

07:55.230 --> 08:01.410
Como de costume, vai ser a função de ativação corrigida e talvez você se lembre do nome para isso

08:01.620 --> 08:02.330
é realmente.

08:02.790 --> 08:03.410
Aqui vamos nós.

08:03.450 --> 08:04.290
Esse é o único.

08:04.290 --> 08:12.540
E então nos aplicamos realmente às nossas imagens agrupadas agrupadas que é tudo isso.

08:12.540 --> 08:12.940
Tudo bem.

08:12.990 --> 08:14.270
E é isso.

08:14.370 --> 08:15.320
Três passos feitos.

08:15.330 --> 08:16.370
Isso foi muito rápido.

08:16.500 --> 08:23.460
Então, lembre-se da maneira como temos de olhar para isso é primeiro, aplicamos a convolução para nossas imagens de

08:23.460 --> 08:28.830
entrada, então aplicamos o máximo de puxar para nossas imagens complicadas obtidas com uma convolução.

08:28.950 --> 08:35.730
convolucional sobre a qual foi uma tração de clímax e em que os neurônios estão agora ativados.

08:35.730 --> 08:43.960
E, em seguida, ativamos os neurônios em toda essa camada de convolução com a função de ativação do retificador, de modo

08:44.050 --> 08:46.200
que obtivemos a nossa primeira camada

08:46.260 --> 08:51.640
E, basicamente, o que faz é que ele propaga os sinais da primeira camada convolucional para

08:51.640 --> 08:52.500
a próxima.

08:52.630 --> 08:56.580
E falando sobre o próximo, é exatamente o que vamos cuidar agora.

08:56.570 --> 09:01.660
Vamos fazer o mesmo que acabamos de fazer no primeiro convolucional lá

09:01.660 --> 09:08.170
para a segunda camada convolucional para propagar novamente os sinais na rede neural ativando os neurônios

09:08.170 --> 09:09.660
da segunda camada convolucional.

09:09.850 --> 09:12.910
Mas antes de fazer isso precisamos obter essa camada convolucional.

09:13.120 --> 09:18.330
E então vamos aplicar convolução para X que agora é a primeira camada convolucional.

09:18.460 --> 09:24.070
Bem, vamos aplicar a convolução para 2 x para obter a segunda camada convolucional após a qual

09:24.070 --> 09:25.120
será Max puxá-la.

09:25.240 --> 09:27.860
E, finalmente, ativando Sirat.

09:27.970 --> 09:29.070
Então vamos fazer isso.

09:29.170 --> 09:35.350
Na verdade, é muito fácil copiar isso e colar isso abaixo.

09:35.350 --> 09:39.240
Agora é claro que precisamos substituir a convolução um por convolução também.

09:39.520 --> 09:40.460
E nós vamos lá.

09:40.480 --> 09:43.650
Isso realmente está pronto, veja muito fácil.

09:43.900 --> 09:50.200
E agora, com esta linha, propagamos os sinais do segundo convolucional para o próximo, que

09:50.260 --> 09:52.580
será o terceiro convolucional lá.

09:52.720 --> 09:57.220
E para obter essa terceira vontade convolucional, será necessário aplicar isso de novo.

09:57.220 --> 10:04.630
Então eu estou copiando isso colando isso abaixo e substituindo a convolução também pela convolução 3 e isso é feito

10:04.870 --> 10:06.340
não é tão prático.

10:06.340 --> 10:11.490
Nós propagamos os sinais nas três letras convolutivas em uma lanterna.

10:11.500 --> 10:13.100
Graças a esta incrível estrutura.

10:14.020 --> 10:15.340
Tudo bem, tão perfeito.

10:15.340 --> 10:21.250
Agora temos nossos sinais propagados até a terceira camada convolucional e depois.

10:21.360 --> 10:24.780
E falar de depois disso nos leva ao que estamos procurando.

10:24.820 --> 10:28.510
O que nos interessa é o achatamento lá.

10:28.510 --> 10:33.620
Tudo bem, agora que temos a nossa terceira convolução que é o último X aqui.

10:33.790 --> 10:36.120
É hora de obter nosso achatamento.

10:36.490 --> 10:37.990
E assim é exatamente o que vamos fazer.

10:37.990 --> 10:44.200
Agora vamos aplanar todos os pixels desta terceira camada convolucional que é que vamos levar todos

10:44.290 --> 10:48.430
os pixels de todos os canais da terceira camada convolucional.

10:48.640 --> 10:51.920
Nós vamos colocá-los um após o outro em um vetor enorme.

10:52.150 --> 10:56.920
E é claro que este enorme vetor não será nada além da camada de achatamento

10:56.920 --> 11:02.000
e, ao mesmo tempo, usaremos um truque para obter o número de neurônios neste achatamento lá.

11:02.070 --> 11:03.790
É isso que estamos procurando.

11:03.790 --> 11:09.370
de neurônios que estamos perdendo e, portanto, vamos retornar diretamente o que queremos e neste retorno, vamos

11:09.370 --> 11:15.130
aplanar a terceira camada convolucional e chegar ao mesmo e o número de neurônios nesta camada achatada.

11:15.130 --> 11:16.330
Esse é o número

11:16.630 --> 11:20.150
Então vamos tomar X. Qual é a nossa terceira convolução lá.

11:20.320 --> 11:25.150
Nós vamos levar todos os canais do terceiro convolucional lá e vamos usar uma

11:25.150 --> 11:32.160
função que é a função de tamanho para baixar todos os pixels de todos esses canais em um mesmo vetor enorme.

11:32.230 --> 11:35.930
E então, o truque que você consegue encontrá-lo no pite ver o trabalho.

11:36.130 --> 11:42.400
Bem, primeiro, nós levamos os dados de X porque X é uma estrutura especial, você sabe que é uma tocha Voivode, então

11:42.400 --> 11:44.250
ele tem uma estrutura bastante complexa.

11:44.320 --> 11:51.920
Mas primeiro precisamos acessá-lo com dados aqui, então precisamos ver o que está dentro dele.

11:52.090 --> 11:57.700
Então usamos essa função de visualização e agora precisamos acessar o que estamos procurando

11:57.700 --> 12:01.980
e isso é mesmo com os argumentos 1 e menos 1.

12:02.230 --> 12:04.390
Você tem que entender o que está dentro da estrutura.

12:04.510 --> 12:10.060
Mas você só pode entender que é assim que vamos conseguir esse número de

12:10.150 --> 12:15.560
neurônios e, para terminar, precisamos adicionar tamanho entre parênteses e entradas internas 1.

12:15.880 --> 12:21.610
Então, basicamente, o que fazemos aqui, o que fazemos, é que tomamos todos os pixels de todos os canais

12:21.610 --> 12:27.180
e os colocamos um após o outro nesse enorme vetor que será a entrada da rede totalmente conectada.

12:27.190 --> 12:29.250
Isso é basicamente o que o tamanho faz.

12:29.410 --> 12:34.060
E com isso podemos obter esse número de novos que estamos procurando.

12:34.060 --> 12:36.460
Tudo bem, agora, obtemos o que queremos.

12:36.490 --> 12:44.350
E por isso, finalmente, podemos substituir os neurônios numéricos por o que é retornado por esta função quando

12:44.530 --> 12:47.400
é aplicado ao formato das imagens.

12:47.440 --> 12:50.140
Isso é um por 80 por 80.

12:50.170 --> 13:00.040
Então, o que temos que fazer agora é o número de neurônios de substituição, levamos a função de contagem

13:00.250 --> 13:09.040
de neurônios que aplicamos ao formato das imagens, que será o total de 80 e 80.

13:09.460 --> 13:10.400
E nós vamos lá.

13:10.510 --> 13:17.140
E é claro que não nos esquecemos porque o neurônio Count é realmente um método do teste CNN.

13:17.170 --> 13:18.490
Então precisamos adicionar o.

13:18.700 --> 13:21.190
E agora o aviso deve desaparecer.

13:21.190 --> 13:22.540
E nós vamos lá.

13:22.540 --> 13:23.890
Agora tudo é bom.

13:23.980 --> 13:29.930
Nós conseguimos a arquitetura da rede neural sem falta de nada e nós temos essa função de countersuits

13:30.140 --> 13:35.290
caso você saiba que deseja experimentar algumas outras arquiteturas e você não quer contar o número

13:35.290 --> 13:36.210
de neurônios manualmente.

13:36.340 --> 13:39.940
Você apenas usa essa função para reproduzir o formato das suas imagens.

13:40.180 --> 13:42.130
E isso irá levá-lo diretamente ao que deseja.

13:42.130 --> 13:45.810
Esse é o número de neurônios na camada de inundação sem ter que fazer nada.

13:45.820 --> 13:49.450
E onde quer que a arquitetura seja crítica.

13:49.480 --> 13:57.040
E agora terminamos com o primeiro grande passo importante deste cérebro que estamos fazendo e temos um

13:57.040 --> 13:57.720
último passo.

13:57.790 --> 14:02.500
Essa é uma última função para fazer qual será a principal função para a frente.

14:02.590 --> 14:07.730
dos olhos do olho para a camada de saída que está após a segunda conexão.

14:07.730 --> 14:12.160
Então, vamos propagar os sinais desde o início do cérebro que são

14:12.460 --> 14:15.850
Então vamos fazer isso nos próximos dois anos e até então nossa IA.
