WEBVTT

00:00.150 --> 00:05.400
Olá, meus amigos, e bem-vindos a esta nova seção sobre a visualização dos resultados

00:05.400 --> 00:07.260
do profundo, convolucional, imoral.

00:07.860 --> 00:13.530
Em primeiro lugar, quero realmente dar os parabéns por ter concluído toda essa implementação do modelo

00:13.530 --> 00:15.650
de aprendizagem convolucional e profundo.

00:16.020 --> 00:22.410
E agora estamos na parte divertida, em que vamos visualizar os resultados do A. EU. Nós criamos.

00:22.830 --> 00:27.420
E como eu disse, no final do tutorial anterior, sabe, a última história da implementação, eu

00:27.750 --> 00:29.990
disse que tinha uma surpresa para vocês.

00:30.000 --> 00:32.520
E, bem, a surpresa é exatamente essa.

00:32.730 --> 00:35.550
Vamos visualizar os resultados no Google.

00:35.550 --> 00:37.970
Kulab E por que isso é uma boa surpresa?

00:38.220 --> 00:44.430
Essa é uma boa surpresa, porque basicamente você não terá absolutamente nenhum problema para executar o código, você sabe, executar

00:44.430 --> 00:46.690
o código e visualizar os resultados.

00:47.160 --> 00:49.650
Na verdade, este é um novo recurso do curso.

00:49.650 --> 00:55.710
Você sabe, antes disso, costumávamos executar o código no Spider em Python, mas era extremamente difícil, você

00:55.710 --> 01:01.410
sabe, instalar todos os pacotes e aplicar nas dependências do ginásio e em todas as

01:01.410 --> 01:02.490
dependências diferentes.

01:02.820 --> 01:06.450
Muitos alunos tiveram muitos problemas ao instalar tudo.

01:06.450 --> 01:11.550
E no final, a maioria deles não conseguia rodar bem, o código inteiro, e principalmente eles não podiam ver

01:11.550 --> 01:12.360
os resultados finais.

01:12.630 --> 01:14.940
Então, eu queria absolutamente consertar isso.

01:15.120 --> 01:19.860
E realmente a melhor solução que encontrei foi incluir todo o código.

01:19.870 --> 01:24.120
Portanto, você terá exatamente o mesmo código que implementamos nesta parte.

01:24.270 --> 01:30.300
Mas incluí todo o código em um notebook do Google Kulab onde a única coisa que você terá que

01:30.300 --> 01:35.160
fazer para executar o código e visualizar o resultado será clicar nesses botões aqui.

01:35.190 --> 01:40.200
Essa é a única coisa que você precisa fazer, porque a beleza do Google Kulab é que a maioria

01:40.200 --> 01:42.060
das bibliotecas e pacotes já estão instalados.

01:42.180 --> 01:47.430
Por exemplo, tenso floor já está instalado por tortura já está instalado em todos os módulos da

01:47.430 --> 01:51.580
tocha, funções e classes já estão instaladas, então você não precisa instalá-los.

01:51.810 --> 01:56.880
No entanto, ainda temos algumas pequenas dependências para instalar para garantir que tudo esteja bem conectado, mas

01:57.120 --> 02:02.850
não teremos que instalá-las por meio de um terminal ou, você sabe, por meio do prompt do anakonda, como fizemos

02:02.850 --> 02:04.560
no carro que dirige sozinho.

02:04.710 --> 02:10.230
Teremos apenas que clicar neste botão play aqui nesta primeira célula instalando dependências do sistema para

02:10.230 --> 02:10.680
sabedoria.

02:11.220 --> 02:13.800
Agora, eu sei o que alguns de vocês podem estar pensando.

02:13.830 --> 02:16.630
Por que não fizemos o mesmo com o carro que dirige sozinho?

02:16.800 --> 02:22.050
Bem, infelizmente, não poderíamos fazer o mesmo porque em um módulo de carro autônomo, tivemos as

02:22.050 --> 02:28.050
interações do usuário, você sabe, quando plugamos algum sentido no mapa para projetar as estradas e colocar alguns obstáculos.

02:28.350 --> 02:34.710
Bem, e felizmente, o Google Kulab ainda não tem esse recurso de permitir algumas interações do usuário com

02:34.710 --> 02:35.760
alguns mapas.

02:35.760 --> 02:38.340
Então eu não poderia fazer isso com o carro que dirige sozinho.

02:38.370 --> 02:39.390
Minhas desculpas por isso.

02:39.630 --> 02:45.090
Mas é por isso que lhe dei todo o capítulo do meu livro sobre o curso intensivo, que contém todas as instruções

02:45.270 --> 02:46.860
sobre o carro que dirige sozinho.

02:46.860 --> 02:49.440
Espero que você possa instalar tudo corretamente de qualquer maneira.

02:49.440 --> 02:51.930
Não havia muito para instalar em comparação a fazê-lo.

02:51.930 --> 02:56.490
Espero que tudo tenha corrido bem para o carro que dirige sozinho, mas para Doom aqui, agora você está coberto.

02:56.670 --> 03:00.760
Você não terá problemas para executar o código e visualizar os resultados.

03:00.760 --> 03:01.770
Então essa é a surpresa.

03:01.980 --> 03:02.910
Espero que você goste.

03:03.120 --> 03:08.040
E agora vou guiá-lo por toda a implementação para mostrar que, de fato, temos

03:08.040 --> 03:11.430
exatamente o mesmo código que implementamos nesta parte dois.

03:11.730 --> 03:14.610
A única coisa é que eu combinei os três códigos.

03:14.610 --> 03:19.770
Sabe, esse é um código que tínhamos na pasta, sabe, composto do processamento de imagem que eu senti então o replay da

03:19.780 --> 03:25.560
experiência que eu senti e o A. EU. que senti com as duas partes, parte

03:25.560 --> 03:28.110
um, construir os dados e parte para treinar os dados.

03:28.410 --> 03:34.750
Bem, o que eu simplesmente fiz foi mesclar os três colocando primeiro a imagem, pré-processamento que achei que irei mostrar

03:34.950 --> 03:37.560
isso a você na pasta de trabalho então.

03:37.560 --> 03:40.440
Em segundo lugar, a experiência se repete tão bonita.

03:40.560 --> 03:46.140
E terceiro, a área que eu senti lá, apenas uma abaixo da outra nessa ordem.

03:46.320 --> 03:48.150
OK, então vou mostrar isso para você.

03:48.300 --> 03:54.120
E então eu só tive que mudar duas ou três coisas em todo o código e vou mostrar exatamente as mudanças

03:54.120 --> 03:59.550
para que você possa ter certeza de pegar a diferença basicamente em que, bem, tudo é o mesmo e

03:59.730 --> 04:01.980
que, bem, tudo é o mesmo também.

04:02.010 --> 04:04.800
Absolutamente nenhuma mudança, entretanto, naquele arquivo.

04:05.040 --> 04:10.720
Bem, aqui, quando inserimos os pacotes para abrir e fazer bem, não usamos esse pacote.

04:10.740 --> 04:13.380
Espaço de ação dos wrappers Dhoom para importar para este grupo.

04:13.410 --> 04:14.880
Nós não usamos mais isso.

04:15.000 --> 04:15.960
Usaremos outra coisa.

04:15.960 --> 04:16.410
Você vai ver.

04:16.710 --> 04:21.870
Além disso, mudei as dimensões das molduras aqui, 80 por 80.

04:22.080 --> 04:29.040
Eu mudei para 256 por 256 para que você possa ter melhores resultados de visualização, porque você terá

04:29.040 --> 04:30.990
vídeos maiores para assistir.

04:30.990 --> 04:32.490
OK, foi exatamente isso que mudei.

04:32.490 --> 04:32.970
Eu vou te mostrar.

04:32.970 --> 04:38.880
Agora, vamos começar com o processamento de imagens, porque de fato, como eu disse a vocês, acabei de mesclar os três

04:38.880 --> 04:39.360
arquivos.

04:39.450 --> 04:43.200
Portanto, começamos realmente com o processamento de imagens da maneira P.

04:43.470 --> 04:45.780
E como você pode ver, isso é exatamente o mesmo.

04:45.960 --> 04:49.290
Começamos importando as bibliotecas, exatamente as mesmas aqui.

04:49.590 --> 04:56.010
Em seguida, pré-processamos as imagens com a classe de imagens de pré-processamento composta pelo método Init e pelo método de

04:56.010 --> 04:56.460
observação.

04:56.700 --> 04:59.700
E como você pode ver, esta é exatamente a mesma imagem de pré-processamento.

05:00.150 --> 05:02.350
E método admitido e de observação.

05:02.490 --> 05:09.300
Tudo bem, então passamos para a experiência com o jogo em que temos exatamente o mesmo que importamos primeiro

05:09.300 --> 05:12.210
para as bibliotecas aqui, nomes na calçada.

05:12.420 --> 05:12.870
Certo.

05:13.170 --> 05:17.130
Em seguida, definimos uma etapa exatamente igual à que temos aqui.

05:17.340 --> 05:23.700
E então fazemos um progresso em várias etapas finais, etapas com a classe de progresso da etapa final, que

05:23.700 --> 05:26.790
é exatamente igual à da pasta de trabalho.

05:26.790 --> 05:27.170
Certo.

05:27.180 --> 05:29.250
Acabei de copiar e colar aqui.

05:29.280 --> 05:31.290
Tínhamos exatamente o mesmo método init.

05:31.290 --> 05:34.650
É um método e o método das etapas de recompensa.

05:34.770 --> 05:40.440
Tudo bem, então é claro que implementamos a repetição de experiência com a classe de memória de repetição.

05:40.590 --> 05:44.130
E como você pode ver, temos exatamente o mesmo na cor do Google.

05:44.130 --> 05:49.560
Além disso, talvez você aprecie melhor a estrutura porque adicionei alguma textura para que, você sabe, possa ser

05:49.560 --> 05:52.680
ainda mais agradável de visualizar nesta pasta de trabalho.

05:52.710 --> 05:53.160
Tudo certo.

05:53.170 --> 05:58.710
Portanto, reproduza as etapas de execução em lote de amostra do método init da classe de memória, basicamente exatamente o mesmo código.

05:58.830 --> 05:59.310
Tudo certo.

05:59.640 --> 06:06.750
E então passamos para a terceira falta, I fordismo, de qualquer maneira, no que diz respeito às duas partes, parte um edifício e

06:07.380 --> 06:09.200
parte para treinar os dados.

06:09.210 --> 06:12.480
Então, deixe-me mostrar que temos exatamente o mesmo nesta pasta de trabalho.

06:12.810 --> 06:17.990
Portanto, presumo de qualquer maneira, primeiro importamos as bibliotecas, exatamente as mesmas.

06:18.000 --> 06:23.070
Certo, como você pode ver, então aqui, essa é a diferença que já destaquei ao importar

06:23.070 --> 06:29.880
os pacotes para abrir e fazer bem ao invés de importar Jim Webers e depois pular o wrapper e o pacote para

06:29.880 --> 06:30.990
importar para isso.

06:31.620 --> 06:34.410
Bem, o que fazemos é apenas importar Jim.

06:34.410 --> 06:40.020
Isso é o mesmo que importar sabedoria, Jim, que são os novos ambientes Dhume, basicamente, que

06:40.020 --> 06:41.670
foram muito, bem, melhorados.

06:41.850 --> 06:44.960
E, finalmente, o Raptors da Biblioteca Jim.

06:44.970 --> 06:45.330
Tudo certo.

06:45.330 --> 06:50.280
Então, apenas essa diferença aqui, que fará com que isso funcione no Google Kulab e também no Python se você

06:50.280 --> 06:51.030
quiser executá-lo.

06:51.360 --> 06:56.280
E então, é claro, eu não tive que incluir aquele código no Google Kulab simplesmente porque aqui importamos

06:56.280 --> 06:59.280
os outros arquivos aqui, você sabe, porque eles estão separados.

06:59.490 --> 07:04.350
E como eu mesclei os três arquivos na cor do Google, bem, não preciso fazer essa importação.

07:04.350 --> 07:08.190
Então, passamos diretamente para a parte um, construindo a área.

07:08.490 --> 07:13.110
E aqui, como eu disse a você, temos exatamente o mesmo código, exceto para as dimensões aqui.

07:13.170 --> 07:13.590
Certo.

07:13.800 --> 07:17.280
Se olharmos para a parte um aqui, a parte um edifício, sim.

07:17.280 --> 07:20.820
Começamos fazendo o cérebro com o C e classe.

07:21.000 --> 07:25.890
E como você pode ver, temos exatamente o mesmo código, exceto pelas dimensões dos quadros de entrada

07:25.890 --> 07:28.950
aqui, que eram quando implementamos o código oitenta por oitenta.

07:29.250 --> 07:37.200
Mas eu mudei aquele Google Kulab para 256 por 256 para que você possa ter melhores frames e, portanto, melhores vídeos

07:37.200 --> 07:38.060
para assistir.

07:38.100 --> 07:40.460
OK, mas todo o resto é exatamente igual.

07:40.470 --> 07:46.470
Então aqui fazemos o cérebro com a classe CNN, então fazemos o corpo com a classe corporal softmax.

07:46.470 --> 07:48.900
Tão exatamente igual ao que temos aqui.

07:49.050 --> 07:54.660
E, finalmente, colocamos tudo junto com o A. EU. classe, cantando o cérebro e

07:54.840 --> 07:58.140
o corpo, e também algum método para realizar as ações.

07:58.140 --> 07:58.560
Certo?

07:58.710 --> 08:04.740
Exatamente a mesma classe de idade composta pelo cérebro no corpo e então o mesmo método para realizar as

08:04.740 --> 08:05.220
ações.

08:05.340 --> 08:05.820
Tudo certo.

08:06.150 --> 08:07.160
Tão exatamente igual.

08:07.160 --> 08:09.510
Apenas as dimensões dos quadros de entrada mudaram.

08:09.750 --> 08:13.700
E agora vamos passar para a parte dois, que também será exatamente a mesma.

08:13.710 --> 08:16.650
Primeiro, acertamos o ambiente da desgraça.

08:16.650 --> 08:18.420
Deixe-me mostrar a parte dois aqui também.

08:19.020 --> 08:21.000
Primeiro pegamos o meio ambiente.

08:21.000 --> 08:27.810
E aqui lembre-se disso desde que não o usamos mais para melhorar o meio ambiente, mas sim sabedoria.

08:28.050 --> 08:31.500
Bem, a única coisa que mudou nesse código é de fato isso aqui.

08:31.500 --> 08:33.030
E nós obtivemos sabedoria Cawdor?

08:33.030 --> 08:35.490
Mas este é exatamente o mesmo ambiente.

08:35.880 --> 08:36.330
Tudo certo.

08:36.330 --> 08:40.620
E então, é claro, eu mudo essas novas dimensões para que você possa ter vídeos maiores aqui.

08:40.620 --> 08:46.080
Portanto, não temos mais oitenta por oitenta, mas desta vez 256 por 256.

08:46.350 --> 08:48.150
E então temos exatamente o mesmo.

08:48.150 --> 08:52.620
Recebemos a demanda e o número de ações que você verá será sete.

08:53.190 --> 08:59.250
Então nós construímos a API criando o objeto cérebro, você sabe, CNN, então o objeto corpo, corpo softmax

08:59.250 --> 09:05.310
e então toda a área composta do cérebro e do corpo exatamente igual ao que implementamos juntos.

09:05.800 --> 09:07.890
Nesse momento, configuramos a experiência Freeplay.

09:07.890 --> 09:09.660
Então é exatamente o mesmo aqui.

09:09.960 --> 09:11.880
E então implementamos a elegibilidade.

09:11.880 --> 09:13.950
Treis ainda é exatamente o mesmo.

09:14.100 --> 09:15.560
E então o que fazemos?

09:15.570 --> 09:18.780
Bem, fazemos a média móvel de cem passos.

09:19.230 --> 09:20.330
Executivos, o mesmo aqui.

09:20.340 --> 09:21.900
Então esse é exatamente o mesmo código.

09:22.110 --> 09:27.950
Basicamente, mudaram apenas as dimensões das molduras e a forma de importação do ambiente.

09:27.960 --> 09:33.030
OK, e finalmente treinamos a IA exatamente com o mesmo código.

09:33.190 --> 09:39.180
OK, então até aqui temos todo o código que você viu na pasta.

09:39.330 --> 09:44.610
Quando você baixa o conjunto de dados e o código novamente, basicamente também temos todo o código que implementamos

09:44.610 --> 09:45.120
juntos.

09:45.510 --> 09:49.440
No entanto, para fazer a visualização funcionar no Google.

09:49.440 --> 09:57.060
Kulab Bem, eu adicionei esse código extra, mas como ele é realmente específico apenas para este notebook colorido

09:57.060 --> 09:59.580
e também específico para visualização.

09:59.730 --> 10:05.850
O AIA em ação no ambiente Doom vai agradar você não precisa se preocupar em entender todos os códigos que estão aqui

10:05.850 --> 10:10.380
porque, você sabe, você só verá isso uma vez em sua vida quando quiser construir e

10:10.560 --> 10:13.300
treinar alguns A. EU. para brincar no ambiente.

10:13.500 --> 10:17.490
O que quero dizer é que você não terá que usar esse código para os outros aplicativos.

10:17.490 --> 10:21.980
Você estará trabalhando em um prédio e treinando em A. EU. Portanto, não se preocupe muito com essa garota.

10:21.990 --> 10:25.920
Eu só adicionei isso para fazer funcionar no Kulab, mas vamos ver o que faço.

10:26.070 --> 10:32.100
Eu primeiro nas bibliotecas, é claro, depois adicionei alguns códigos práticos aqui para que você possa ver rapidamente o número

10:32.100 --> 10:37.920
de ações que você tem no ambiente, bem como uma exibição do quadro do ambiente apenas para ver como

10:37.920 --> 10:39.180
ele é gostar.

10:39.420 --> 10:45.030
E acrescentei isso porque também vou mostrar a você como brincar com outros ambientes doomer, porque na

10:45.030 --> 10:46.710
verdade você tem muitos deles.

10:46.980 --> 10:53.220
E então o que você simplesmente terá que fazer é substituir o corredor da sabedoria pelo nome dos outros ambientes que

10:53.370 --> 10:54.110
estão aqui.

10:54.120 --> 10:57.180
Vou te dar o link dessa página direto para este tutorial.

10:57.450 --> 11:02.290
Mas aqui, como você pode ver, você tem muitos ambientes Dhoom com os quais pode brincar, sabe, alguma

11:02.340 --> 11:03.180
sabedoria básica.

11:03.180 --> 11:07.800
Korder, que é com quem vamos jogar agora, Wisdom Defense Center e outros.

11:07.810 --> 11:09.840
E você ainda tem alguns labirintos internos.

11:09.840 --> 11:11.700
E apenas siga as instruções aqui.

11:11.850 --> 11:13.860
Você os encontrará todos nesta pasta.

11:14.040 --> 11:20.250
Você sabe, neste em seu método, você pode apenas encontrar o nome aqui com alguma sabedoria básica é algum centro de

11:20.250 --> 11:20.640
defesa.

11:20.760 --> 11:22.620
E você tem muitos, muitos deles, veja você.

11:22.620 --> 11:27.930
Então, se você quiser brincar com outros ambientes doom de graça para fazer isso, você só terá

11:27.930 --> 11:29.850
que mudar o nome do ambiente.

11:29.850 --> 11:34.020
Sempre que você vir a cor da sabedoria aqui nesta pasta de trabalho, basta substituí-la pelo nome.

11:34.230 --> 11:39.570
E graças a este código e a este, bem, você poderá rapidamente ver qual é o número de ações,

11:39.570 --> 11:45.090
as dimensões da forma de entrada e também uma exibição do quadro para ver como o ambiente se parece

11:45.240 --> 11:47.190
com isso será muito prático .

11:47.550 --> 11:50.700
Então, acabei de fazer essa função auxiliar para a visualização.

11:51.000 --> 11:55.590
Então eu corro o A. EU. em um episódio, é claro, depois de treinado.

11:55.590 --> 11:57.780
Portanto, primeiro vamos treiná-lo aqui.

11:57.780 --> 12:02.310
Como você pode ver, a propósito, esqueci de dizer que também mudo um número de épocas

12:02.310 --> 12:07.770
de 100 para vinte e que simplesmente porque, você sabe, aumentei as dimensões da moldura e, como aumentei as

12:07.780 --> 12:12.210
dimensões da moldura, bom, o treino vai demorar muito mais porque, claro, é mais difícil

12:12.210 --> 12:12.720
treinar.

12:12.870 --> 12:17.040
E, portanto, reduzi o número de cem épocas para vinte.

12:17.160 --> 12:20.970
OK, e não se preocupe com isso nós já teremos recompensas positivas.

12:20.970 --> 12:25.170
Mas é claro que se você quiser melhorar o desempenho e os resultados no final, fique à vontade

12:25.170 --> 12:26.640
para aumentar esse número de e-books.

12:26.730 --> 12:28.290
Você obterá resultados ainda melhores.

12:28.290 --> 12:32.190
Mas você verá que já com a Twenty Époque, o treinamento vai demorar bastante.

12:32.310 --> 12:33.720
OK, tudo bem.

12:33.720 --> 12:35.370
Então, onde eu estava?

12:35.400 --> 12:37.530
Sim, essa função auxiliar para a visualização.

12:37.530 --> 12:41.490
Então, coloco no ar um episódio, é claro, depois de treinado.

12:41.670 --> 12:48.570
E, finalmente, esta última célula de código irá produzir o vídeo do jogo, você sabe, ao longo deste episódio e

12:48.570 --> 12:54.540
você verá como o AI irá se comportar ao longo deste episódio em um vídeo, que terá

12:54.540 --> 12:56.670
saída e será capaz de baixar.

12:56.760 --> 12:59.790
E a falta está aqui, você sabe, quando executamos este código.

12:59.910 --> 13:01.260
OK, tudo bem.

13:01.350 --> 13:03.150
Então agora é hora da execução.

13:03.150 --> 13:06.390
É hora de realmente sentar-se confortavelmente em nossa cadeira.

13:06.390 --> 13:08.310
Espero que você tenha um bom café ou uma boa visita.

13:08.520 --> 13:14.010
Agora vamos apenas pressionar os diferentes botões de reprodução e cada uma das células para executar o resultado final.

13:14.010 --> 13:14.790
Então vamos fazer isso.

13:15.060 --> 13:17.780
Mas primeiro, e isso é muito importante entender e seguir em frente.

13:17.790 --> 13:23.520
Kulab Então, este é o link de uma pasta de trabalho do Google Kulak, à qual todos vocês têm acesso.

13:23.790 --> 13:28.170
E portanto, é claro, você não pode modificar nada nele, porque se um de vocês se modificar

13:28.260 --> 13:30.000
bem, os outros verão a modificação.

13:30.210 --> 13:34.800
Então isso está em modo somente leitura e portanto o que você tem que fazer para fazer algumas

13:34.800 --> 13:38.940
modificações, sabe, no caso de querer mudar o nome do ambiente ou aumentar o número

13:38.940 --> 13:45.840
de épocas ou mesmo afinar o seu A. EU. , bem, você terá que criar uma cópia desta pasta de trabalho, que

13:45.870 --> 13:47.160
estará em seu próprio Google Drive.

13:47.160 --> 13:52.560
E é por isso que, para fazer isso, você precisará de um endereço do Gmail para ter um Google

13:52.560 --> 13:52.950
Drive.

13:52.950 --> 13:55.500
OK, então certifique-se de ter um.

13:55.500 --> 14:01.280
E quando for esse o caso, bem, você só precisa clicar em arquivo aqui, salvar uma cópia e dirigir.

14:01.280 --> 14:07.380
Isso criará uma cópia desta pasta de trabalho em seu próprio Google Drive, na qual você poderá

14:07.500 --> 14:08.610
fazer algumas modificações.

14:08.610 --> 14:09.150
Tudo certo.

14:09.480 --> 14:12.900
E agora estamos aqui no início desta execução.

14:12.900 --> 14:18.240
Portanto, agora vamos apenas jogar todas as células e chegar cada vez mais perto do resultado

14:18.240 --> 14:18.660
final.
