Невозможно импортировать shadoworflow как tf [duplicate]

Чтобы расширить ответы, уже даваемые о том, почему для этого нет переносимого способа, вся концепция фактического стека не является частью стандарта. Вы могли бы написать среду выполнения C или C ++, которая не использует стек вообще, кроме записей вызовов функций (которые могут быть внутренне связанными или что-то еще).

Стек представляет собой деталь реализации конкретный компьютер / ОС / компилятор. Следовательно, любой метод доступа к меткам стека будет специфичен для машинного / OS / компилятора.

Пока вы не являетесь фактическим ответом на ваш конкретный вопрос (Niels достаточно хорошо это рассмотрели), но как совет для вашей проблемной области: просто выделите большой кусок памяти в куче. Нет никакой причины в стороне от удобства, что «реальный» стек любой другой. Очень рекурсивные (не хвостовые рекурсивные) алгоритмы часто требуют этого, чтобы гарантировать, что у них есть фактически неограниченный «стек». Языки скриптов, которые хотят, чтобы они отображали ошибку / исключение во время выполнения, а не сбой приложения-хоста, также часто делают это. Чтобы быть эффективными в отношении вещей, вы можете либо реализовать «разбитый стек» (например, std::deque даст вам), либо вы можете просто предусмотреть выделение стека, достаточно большого для ваших нужд.

6
задан P-Gn 27 May 2018 в 17:01
поделиться

3 ответа

Я предполагаю, что вы пытаетесь использовать TF> = 1.6, потому что ваш процессор довольно старый и не поддерживает инструкции AVX. В самом деле, начиная с версии 1.6, , предварительно созданные двоичные файлы с тензорным потоком используют команды AVX .

В настоящее время ваши варианты: или

  1. встроенный двоичный файл TF 1.5 или ранее.
  2. Поиск неофициального встроенного бинарного файла TF> = 1.6, который не поддерживает AVX. Поскольку это время написания, предварительно созданные двоичные файлы TF 1.8 из conda install в Windows, похоже, не были созданы с поддержкой AVX, хотя я не мог найти эту информацию нигде и, следовательно, не могу сказать, является ли это преднамеренным, и как долго это будет случай. Остерегайтесь того, что двоичные файлы из conda-forge (которые раньше были основным поставщиком кондоминиума conda, прежде чем он был доступен на основном канале), с другой стороны, построены с поддержкой AVX.
  3. Измените свое оборудование для поддержки AVX (очевидно).
  4. Скомпилируйте свой собственный двоичный файл с тензорным потоком без инструкций AVX. Разумный вариант, если никто из других не был возможен.
4
ответ дан P-Gn 17 August 2018 в 11:41
поделиться

Имейте в виду, что приведенные выше ответы верны для многих случаев. Однако понижение до tensorflow 1.5 может быть не лучшим решением, потому что, к примеру, у вас не будет доступа к некоторым новым функциям тензорного потока, например, к функции «нетерпеливого исполнения».

Что я сделал в моем случае было установить tensorflow 1.8 с conda вместо pip. Из моего небольшого опыта работы с conda и pip, conda, кажется, работает лучше, когда дело доходит до размещения необходимых файлов в их правильном месте.

В заключение. Вместо pip3 install --upgrade tensorflow я использовал conda install tensorflow, который установит последней версии.

Если у вас нет Anaconda, установленного для команд conda. Загрузить с здесь

0
ответ дан Salaudeen Abdulrahman 17 August 2018 в 11:41
поделиться

@ user1735003 понял это. Я не определил последнюю версию tensorflow

pip uninstall tensorflow

, а затем установил shadoworflow 1.5

pip install tensorflow==1.5

, после чего я проверил установку, выполненную со скриптом

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

Я получил правильный результат

Hello, TensorFlow!
3
ответ дан Tinkerman255 17 August 2018 в 11:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: