2017-01-24 7 views
0

Я пытаюсь преобразовать конфиг LSTM NDL в Python, но не смог найти поддержку следующих NDL примитивовпримитивов используется для преобразования LSTM NDL в Python в CNTK

  • Delay - Как передать аргумент в задержке переменной, определенной позже в сети? Например, для PST-прокрутки LSTM переменная состояния ячейки, например c_t, определена позже, но требуется задержка для получения состояния ячейки c_t_minus_1, например c_t_minus_1 = Delay (c_t). Однако Python не позволяет использовать переменные (например, c_t) и определять позже.

  • RowStack, RowSlice - Есть ли альтернативы для этих примитивов? Если не как реализовать их в python? Можем ли мы работать с переменными, как если бы они были массивами numpy?

  • DiagTime vs ElementTimes - Есть ли разница между ними для векторного элемента умножения? Также поддерживается DiagTimes в python?

  • Инициализация параметров - Как инициализировать параметры из файла в python и установить computeGradient как false. Я не могу найти никакой поддержки или примеров для этого.

ответ

1

Найдено ответы от команды CNTK - https://github.com/Microsoft/CNTK/wiki/Port-LSTM-NDL-primitives-to-Python

  1. вам нужно использовать placeholder_variable и позже вызов replace_placeholders. Вот простой пример использования: https://github.com/Microsoft/CNTK/wiki/Implement-an-attention-mechanism

  2. применение сплайсинга

  3. использование поэлементно умножения (a.k.a *) константы

  4. использования. Вы можете указать начальное значение через массив numpy. Существует множество способов загрузки текстового (или другого) файла в массив numpy. np.loadtxt должен работать, но я не пробовал.