PyTorch vs. Tensorflow Fold

26

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).

ncasas
fonte
Você também pode adicionar esta discussão em andamento (por ocasião da redação deste comentário) dos colaboradores de pytorch à sua lista de referências.
gusuku
11
Eu encontrei este link muito interessante e está comparando como você pediu (cerca de gráfico dinâmico e usando DyNet e Chainer) hackernoon.com/...
John Theo

Respostas:

9

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 .

christopherlovell
fonte
3
Essa foi a minha experiência em tentar usar o Fold com convoluções sobre árvores nos últimos meses. Ainda não está maduro o suficiente para lidar com coisas assim. Eles sugerem "soluções alternativas" se você observar as questões fechadas no repositório. Mudando para o PyTorch porque o Fold é tão inflexível - com trocadilhos.
Soubriquet 4/06