Почему tf.nn.embedding_lookup использует список вложений?

tensorflow

1284 просмотра

1 ответ

6286 Репутация автора

Мне было интересно, почему tf.nn.embedding_lookupиспользуется список тензоров, тогда как tf.gatherпросто выполняет поиск по одному тензору. Зачем мне нужно искать несколько вложений?

Мне кажется, я где-то читал, что это полезно для экономии памяти при больших вложениях, но я не уверен, как это будет работать, поскольку я не вижу, как разделение вложений могло бы спасти что-либо.

Автор: chasep255 Источник Размещён: 18.07.2016 01:29

Ответы (1)


6 плюса

6919 Репутация автора

Решение

tf.embedding_lookupФункция предполагает, что матрица вложения является осколочной , т. е. разбитой на множество частей. В самом деле, это может работать, когда матрица вложения осколочена в одном направлении, и в этом случае она действует как tf.gather.

Но более интересным является случай, когда матрица встраивания велика, и вы не можете разместить ее в памяти одного компьютера, или вам нужна высокая пропускная способность при операции поиска встраивания. В этих случаях это помогает разбить матрицу на части. Части могут быть распределены по машинам, чтобы вместить все это в память, а также позволяют параллельное чтение для более высокой пропускной способности для поиска.

Автор: keveman Размещён: 18.07.2016 01:30
Вопросы из категории :
32x32