2016-02-24 5 views
0

Theano поддержка named-pipes [для чтения и записи]? Как насчет чтения/записи файлов вообще?Можно ли использовать именованные трубы в Theano?

+0

Theano сам по себе не делает никаких операций ввода-вывода файлов. Если вы можете расширить свой вопрос, чтобы добавить дополнительную информацию, мы сможем помочь. Какие данные вы хотите читать/писать? Можете ли вы поделиться некоторым кодом для того, что у вас есть сейчас, и более подробно о том, как вы хотите, чтобы он работал? –

+0

Спасибо @ DanielRenshaw В принципе, мне нужно читать \ писать матрицу numpy \ vector [двоичный код]. Очень простое использование будет выглядеть примерно так: 'buffer = mypipe.read(); vec = struct.unpack (message_format, buffer); # Теперь сделайте некоторое преобразование в матрицу numpy \ массивы с "vec" ' – Aviad

ответ

0

Если вы знакомы с тем, как делать ввод-вывод с использованием Python и/или numpy, тогда это все, что вам нужно. Просто передайте данные numpy в скомпилированную функцию Anano (или сначала сохраните массив numpy в общей переменной, если это то, что ожидает расчет Anano).

Theano сам не делает никаких операций ввода-вывода. Входы для скомпилированных функций Theano должны быть массивами numpy (или отбрасываться до массивов numpy), а выходы скомпилированной функции Anano также будут иметь числовые массивы. Как вы читаете входные массивы в память или записываете выходные массивы в другом месте, ни одна из проблем Theano, просто используйте Python и/или numpy как обычно.

Существует пример использования именованных каналов в Python here.

+0

Извините, что недостаточно ясны. Я использую scan и хотел бы вызвать внешнюю часть кода (C) на каждом шаге цикла (без выхода из графика). Я могу использовать 'as_op', но только для кода Python. Вопрос в том, могу ли я обернуть трубку ввода/вывода внутри новой C-модели? что-то вроде: '... c_code =" "" mkfifo (myfifo, 0666); fd = open (myfifo, O_WRONLY); write (fd, "Hi", sizeof ("Hi")); close (fd); " "" @Daniel – Aviad

+0

Как насчет градиентов? Theano не может автоматически дифференцировать произвольный код C. Если вам не нужны градиенты, то, возможно, это не правильный инструмент. Если вы захотите реализовать градиенты самостоятельно, тогда да, вы можете создать настраиваемую операционную систему, которая делает все, что вы хотите. –

+0

Я использую базовую обучающую программу обучения, где агент взаимодействует с окружающей средой. Я использую сканирование, чтобы воспроизвести полный эпизод. Я должен использовать его, потому что он позволяет мне распространять информацию вовремя. Однако я не могу смоделировать среду с помощью anano или Python (и обернуть ее внутри 'as_op'). Это слишком сложно и также предоставляется мне как внешний эмулятор. Хорошо, что меня не волнуют его градиенты. Добавление трубы op, чтобы позволить графику говорить с внешним миром, - это то, о чем я жажду. Я ценю любые рекомендации о том, как справиться с этим. @Daniel – Aviad

 Смежные вопросы

  • Нет связанных вопросов^_^