Olá e bem vindo a este tutorial.
Parabéns novamente por ter terminado com isso.
Veja, nós conseguimos que fizemos os cérebros e nós os treinamos.
Mas agora ainda temos que fazer um agente de teste que não será uma data de amanha, mas que apenas
usará o modelo de compartilhamento para fazer suas próprias explorações.
E, claro, nesse código, vamos gravar alguns vídeos, e esses serão os agentes de teste de
vídeos que aparecem com uma certa pontuação.
Então vamos passar por este código.
O mais importante é feito, pois eu disse que não vamos codificá-lo linha a linha, mas acho que
é importante que você entenda o que está acontecendo aqui.
Então, vamos com este código na primeira seção, como você notou.
Nós importamos as bibliotecas e, então, encontramos essa função de teste que fará com que este agente de teste faça
sua própria exploração e jogue o jogo de breakout.
Então, nós conseguimos que esta função de teste leva três argumentos, o primeiro é o ranking que ainda precisa sincronizar
o agente de teste como fizemos para os agentes de treinamento.
Então nós temos nossos parâmetros, é claro, porque você precisa de alguns.
E é claro que temos o modelo compartilhado porque este agente de teste usará um modelo compartilhado para fazer
sua própria exploração.
Tudo bem, entramos dentro da função e esta linha de código que sincronizamos com o agente de teste.
Exatamente como fizemos antes, importamos o meio ambiente.
Então lembro isso no código principal que será no próximo tutorial.
Bem, o nome aqui será substituído por um intervalo de zero para que possamos entrar no ambiente zero
e jogar o jogo e a Cruz Vermelha Trumans, que obterá os vídeos da nossa noite.
Então, basicamente, esta linha de código no total significa que executamos um ambiente com vídeo.
Então, na próxima linha de código, sincronizamos esse ambiente exatamente o mesmo princípio que a função Tendência.
Em seguida, obtemos o nosso modelo e, para isso, criamos um objeto da classe de atividades e colocamos a forma de
entrada com nosso espaço de observação ambiental e os zeros de forma são exatamente como a função do trem
e nossas saídas, que são as ações com um espaço de ação.
Então, exatamente como antes, algo novo aqui desde que terminamos com o treinamento.
Nós não queremos colocar o modelo no modo trem porque simplesmente não queremos treinar,
queremos colocá-lo em desenvolvimento.
E é isso que fazemos aqui com o modelo que evoluiu.
Então, é basicamente para colocar o agente de teste em um modo que basicamente testará o
desempenho testado avaliado.
Então, aqui, recebemos nossos estados de entrada, que são as imagens de entrada do jogo que neste momento são
uma raça inteira.
Então os convertemos em dançarinas de tocha.
Aqui, inicializamos algumas das palavras aqui.
Inicializamos para baixo para true.
última vez, algo novo novamente, nós introduzimos este terceiro viável com uma função de tempo para medir o tempo de computação.
Então, ainda assim, como a
E isso é porque você quer começar o ponto de partida.
Então, aqui, as ações que usamos um tipo de sugestão muito prática que permite adicionar um elemento à sugestão da
direita ou da esquerda.
Então, isso é muito prático e eu lhe darei a referência que penso na versão decrementada do código.
Então você vai dar uma olhada no que é este dequeue e é isso que permite fazer isso.
Em seguida, inicializamos o comprimento de um episódio com zero, é claro, e então incrementaremos o tamanho
neste loop de bom.
Então usamos o mesmo truque aqui.
Embora seja verdade e no loop, incrementamos o comprimento do episódio em um.
Quando o jogo termina quando o jogo acabou, recarregamos o último conjunto do modelo compartilhado do modelo de compartilhamento
que datado pelos outros modelos.
Lembre-se que aqui o modelo compartilhado já não é datado então.
Ainda assim, se o jogo acabar se o jogo estiver pronto, Reinetaremos que reinicializamos os estados celulares, ver X e,
em seguida, Estados H x e, de outro, se o jogo não estiver bem, nós mantemos os mesmos estados celulares e nos estados.
Mas para se certificar de que eles são ensinados variável para que eles possam ser anexados a um gradiente.
OK, então é algo que já morreu na função de tendência e, em seguida, ainda no ciclo de tempo e depois
de ter um dado que indica nos estados ocultos da maneira certa, dependendo dos dois casos aqui.
Bem, o que fazemos, obtemos as previsões de amanhã.
É exatamente isso que fazemos aqui com essa linha de código.
Então, obtemos o valor que é o resultado do crítico, o valor real que é o resultado do ator.
E, em seguida, é até todos os estados ocultos H x e os estados celulares do X, então geramos uma
distribuição de probabilidades das ações que estão no valor de ação de valores Q aqui.
E fazemos isso com a próxima função.
E é claro que não precisamos ter probabilidades de sorte aqui porque isso é apenas para treinamento para
o agente de teste.
Simplesmente jogará as ações que acabamos de usá-lo, você conhece como uma determinada atividade para desempenhá-la, mas
não estamos treinando aqui.
Então, temos apenas um suporte e, disto, jogamos a ação, levando diretamente ao RMX dessas probabilidades, e
é preciso a ação que tem maior probabilidade.
E a razão é que o agente de teste não faz nenhuma exploração.
máxima novamente, então, uma vez que tocamos a ação, chegamos ao próximo estado e recebemos a próxima palavra.
Lembre-se de que queremos ter a chance de adotar algumas ações que têm baixas probabilidades quando você
quer fazer alguma exploração dessas outras ações e você não sabe tomar cada vez que a ação que tem
a maior probabilidade, mas aqui o agente de teste pode fazer qualquer exploração e portanto, é por isso que nós
tomamos diretamente a ação que tem a probabilidade
E é um dia datado se o jogo acabou ou não.
Então, conseguimos tudo isso com esta linha de código, jogando a ação depois de selecioná-la com o nosso
Max aqui.
de novo e então, uma vez que acabamos de obter uma nova recompensa Vamos atualizar algumas das recompensas simplesmente adicionando esta nova palavra.
Então, nós jogamos a ação aqui e nós conseguimos o estado, recebemos a recompensa e fizemos isso
E, finalmente, sempre que o jogo estiver pronto.
Então, se isso significa que quando o jogo estiver pronto quando terminar de jogar bem, vamos imprimir
os resultados com o tempo o oposto.
Nós queríamos o comprimento do episódio, que é quanto tempo durou.
Jogando bem e isso é exatamente como imprimimos todas essas variáveis ​​usando esses pequenos truques.
Isso é para o tempo em que queremos que seja apenas uma variável.
Algumas das palavras e idéias são o comprimento do presente OK.
E então, uma vez que imprimimos todos os resultados bem desde o fim do jogo e queremos começar
um novo jogo, vamos reinicializar tudo.
Essa é a soma de duas palavras zero o comprimento de um episódio para zero.
Vamos reescrever todas as ações, usando esta função de tecla, restaura as imagens de
entrada que você conhece repetindo todas as quebras.
E, finalmente, usamos esse tempo que dorme 60 segundos para fazer uma pausa de um minuto para permitir que os outros
agentes praticem.
E isso se o jogo acabar.
ESTÁ BEM.
E, finalmente, temos essa última linha de código que nos dará o novo estado e então podemos avançar.
Podemos continuar neste novo jogo.
Então vamos lá.
Essa é a função de teste.
Coisas às quais você verá os vídeos em um ou dois tutoriais.
Espero que você seja como a última vez para assistir os resultados que está com você.
Curial e eu, que será divertido.
E eu estou lhe dizendo.
Espere ver bons resultados.
Mas lembre-se de que este jogo foi muito desafiador.
Achamos que era um jogo simples para jogar primeiro, mas não em absoluto.
Na verdade, tornou-se muito mais difícil do que a destruição.
E é por isso que o colocamos no último módulo.
Mas, de qualquer forma, vamos fazer essa função principal no próximo tutorial.
Mesmo isso não é o mais importante aqui.
Agora que o A-380 é demente, não codificamos linha a linha, expandirá o código e, muito
rapidamente, obteremos os resultados.
Até então, desfrute da AI.