diff --git a/faq/bios.png b/faq/bios.png new file mode 100644 index 0000000..d362f59 Binary files /dev/null and b/faq/bios.png differ diff --git a/faq/sharing_mac.png b/faq/sharing_mac.png new file mode 100644 index 0000000..37be1b7 Binary files /dev/null and b/faq/sharing_mac.png differ diff --git a/faq/sharing_win.png b/faq/sharing_win.png new file mode 100644 index 0000000..fe06d4f Binary files /dev/null and b/faq/sharing_win.png differ diff --git a/faq/tensorflow_docker_faq.ipynb b/faq/tensorflow_docker_faq.ipynb new file mode 100644 index 0000000..78fbadd --- /dev/null +++ b/faq/tensorflow_docker_faq.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# F.A.Q. по работе с Tensorflow из Docker контейнера" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Этот F.A.Q. посвящён проблемам, с которыми может столкнуться студент специализации Coursera «Машинное обучение и анализ данных» от МФТИ и Яндекса, если при выполнении практического задания 2й недели 5 курса он выберет тернистый путь установки _Tensorflow_ в виде контейнера _Docker_.\n", + "\n", + "Если в ходе выполнения задания вы столкнётесь с какими-то «техническими» проблемами, не описанными в данном F.A.Q., пишите на форум курса или в Slack-канал.\n", + "\n", + "Если вы найдёте решение своей проблемы самостоятельно, будем признательны, если вы сделаете pull-request в этот репозиторий. Таким образом вы очень поможете сообществу.\n", + "\n", + "Итак, поехали!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Q:\n", + "\n", + "Я установил _Docker_ на _Windows 10_, но при запуске вижу вот такое окно. Что делать?\n", + "\n", + "![Включите виртуализацию](bios.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# A:\n", + "\n", + "Нужно сделать буквально то, что просят в сообщении: включить виртуализацию в _BIOS_.\n", + "\n", + "Машины у всех разные, и настройки _BIOS_ выглядят тоже несколько по-разному, но во всех случаях вам нужно искать пункт, который выглядит как «_Virtualization_», «_VT_», «_VT-X_», «_AMD-V_» или содержит их упоминание.\n", + "\n", + "Довольно неплохо процесс описан в этой статье: http://www.sysprobs.com/disable-enable-virtualization-technology-bios" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Q:\n", + "\n", + "Я запустил контейнер с _Tensorflow_ по инструкции, но вижу в домашнем каталоге _ipython_ какие-то незнакомые ноутбуки с примерами.\n", + "\n", + "Где моя рабочая папка ```/Users/username/Coursera/MachineLearning``` (заменить на свою)?!!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A:\n", + "\n", + "Вы можете подмонтировать в контейнер любую из директорий, которые разрешили использовать _Docker_, и все, которые лежат внутри них. Чтобы расшарить директорию, нужно в настройках _Docker_ открыть раздел _Shared Drives (Windows)_ или _File Sharing (OS X / macOS)_\n", + " \n", + "![Доступ к директориям Windows](sharing_win.png)\n", + "![Доступ к директориям OS X / macOS](sharing_mac.png)\n", + " \n", + "Нельзя давать доступ к уже расшаренной директории, и к тем, которые лежат внутри уже расшаренных.\n", + "\n", + "Теперь можно запустить контейнер с указанием, какую директорию с вашего диска вы хотите подмонтировать в какую директорию контейнера:\n", + "\n", + "```\n", + " docker run -it -p 8888:8888 -v c:/Users:/notebooks/Users gcr.io/tensorflow/tensorflow\n", + "```\n", + "\n", + "Здесь ```c:/Users``` – папка на диске, ```/notebooks/Users``` – папка в контейнере.\n", + "\n", + "Теперь в корне _ipython_ вы увидите свои драгоценные исходники, и другие файлы, необходимые для выполнения задания." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Q:\n", + "\n", + "Я запустил исходник ```VGG16.py``` из задания, но вижу ошибку:\n", + "\n", + "``` \n", + " fc2 = ??????\n", + " ^\n", + " SyntaxError: invalid syntax\n", + "```\n", + "\n", + "Что делать???" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A:\n", + "\n", + "Таким образом создатели курса намекают вам, что здесь требуется что-то реализовать самому в рамках задания.\n", + "\n", + "Чтобы проверить работоспособность окружения закомментируйте строки с вопросительными знаками." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Q:\n", + "\n", + "Я избавился от синтаксических ошибок, но теперь не хотят импортироваться какие-то библиотеки. Я вижу ошибку: \n", + "\n", + "```\n", + " ImportError: cannot import name imread\n", + "```\n", + "\n", + "Что делать???" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A:\n", + "\n", + "В контейнере с _Tensorflow_ скорее всего установлены не все необходимые пакеты.\n", + " \n", + "Чтобы их установить, необходимо получить доступ к _bash_ контейнера. Для этого при запущенном контейнере открываем новое окно терминала и вводим туда команду:\n", + "\n", + "```\n", + " docker exec -it container_id /bin/bash\n", + "```\n", + "\n", + "Узнать ```container_id``` можно, воспользовавшись командой:\n", + "\n", + "```\n", + " docker ps\n", + "```\n", + "\n", + "Итак, теперь можно работать непосредственно с _bash_ контейнера. Как правило, не хватает библиотек _scipy_, _Pillow_ и _sklearn_.\n", + "\n", + "Установим их:\n", + "\n", + "```\n", + " pip install -U scipy\n", + " pip install -U Pillow\n", + " pip install -U sklearn\n", + "```\n", + "\n", + "Фла ```-U``` нужен только в том случае, если у вас уже установлена какая-то из версий библиотеки, но вы хотите её обновить.\n", + "\n", + "Выйти из _bash_ контейнера можно командой:\n", + "\n", + "```\n", + " exit\n", + "```\n", + "\n", + "Теперь можете для верности сделать _Kernel/Restart_ в ноутбуке." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}