Tanto o PyTorch quanto o Tensorflow Fold são estruturas de aprendizado profundo destinadas a lidar com situações em que os dados de entrada têm comprimento ou dimensões não uniformes (ou seja, situações em que gráficos dinâmicos são úteis ou necessários).
Gostaria de saber como eles se comparam, no sentido de paradigmas nos quais se apóiam (por exemplo, lotes dinâmicos) e suas implicações, coisas que podem / não podem ser implementadas em cada um, pontos fracos / fortes, etc.
Pretendo usar essas informações para escolher um deles para começar a explorar gráficos de computação dinâmica, mas não tenho uma tarefa específica em mente.
Nota 1: outras estruturas de gráficos de computação dinâmica, como DyNet ou Chainer, também são bem-vindas na comparação, mas eu gostaria de focar no PyTorch e no Tensorflow Fold porque acho que elas são / serão as mais usadas.
Nota 2: Encontrei este tópico do hackernews no PyTorch com algumas informações esparsas, mas não muito.
Nota 3: Outro segmento relevante do hackernews , sobre o Tensorflow Fold, que contém algumas informações sobre como eles são comparados.
Nota 4: tópico relevante do Reddit .
Nota 5: bug relevante no github do Tensorflow Fold que identifica uma limitação importante: impossibilidade de ramificação condicional durante a avaliação.
Nota 6: discussão no fórum pytorch sobre entradas de comprimento variável em relação aos algoritmos utilizados (por exemplo, lote dinâmico).
fonte
Respostas:
Existem algumas boas discussões no Reddit agora ( aqui e aqui ).
Eu não usei nenhuma dessas estruturas, mas, lendo e conversando com os usuários, entendo que o suporte a gráficos dinâmicos no PyTorch é um 'princípio de projeto de cima para baixo', enquanto o TensorFlow Fold está ligado à estrutura original do Tensorflow, portanto, se Se você estiver fazendo algo razoavelmente complicado com o Tensorflow Fold, provavelmente acabará fazendo muito mais hackers do que se estiver usando o PyTorch .
fonte