По вопросам Github и запросы на включения
Нашли баг? Хотите предложить новую функцию? Хотите внести изменения в кодовую базу? Обязательно прочтите это сначала.
сообщение об ошибке
Твой код не работает, и ты решил, что проблема в Керасе? Следуйте этим шагам, чтобы сообщить об ошибке.
Возможно, ваша ошибка уже исправлена. Убедитесь, что вы обновились до текущей основной ветки Keras, а также до последней основной ветки Theano/TensorFlow/CNTK. Чтобы легко обновить Theano: pip установите git+git://github.com/Theano/Theano.git —upgrade.
Поиск похожих вопросов. Убедитесь, что is:open в поиске по тикету, чтобы найти решенные тикеты. Возможно, кто-то уже сталкивался с этой ошибкой. Также не забудьте проверить FAQ Keras. Все еще есть проблема? Откройте вопрос на Github, чтобы сообщить нам об этом.
Убедитесь, что вы предоставили нам полезную информацию о вашей конфигурации: какую операционную систему вы используете? Какую операционную систему Keras вы используете? Вы работаете на GPU? Если да, то какая у вас версия Cuda, из cuDNN? Какой у вас GPU?
Предоставьте нам сценарий для воспроизведения проблемы. Этот сценарий должен быть запущен как есть и не должен требовать загрузки внешних данных (используйте случайно сгенерированные данные, если вам нужно запустить модель на некоторых тестовых данных). Мы рекомендуем использовать Github Gists для размещения кода. Любая проблема, которая не может быть воспроизведена, скорее всего, будет закрыта.
Если возможно, попробуйте исправить ошибку самостоятельно — если можете!
Чем больше информации вы предоставите, тем легче нам будет подтвердить наличие ошибки и тем быстрее мы сможем принять меры. Если вы хотите, чтобы ваша проблема была решена быстро, следуйте указанным выше шагам.
Запрос функции
Вы также можете использовать Tensorflow Github, чтобы запросить функции, которые вы хотели бы видеть в Keras, или изменения в Keras API.
Предоставьте ясное и подробное объяснение нужной функции и почему ее необходимо добавлять. Помните, что нам нужны функции, которые будут полезны большинству наших пользователей, а не просто небольшому подмножеству. Если вы ориентируетесь только на меньшинство пользователей, подумайте о написании дополнительной библиотеки для Keras. Для Keras очень важно избежать раздувания API и кодовой базы.
Предоставьте фрагменты кода, демонстрирующие API, которое вы имеете в виду, и примеры использования вашей функции. Конечно, на данном этапе писать реальный код не нужно!
После обсуждения функции можно выбрать попытку Pull Request на tf.keras. Если у вас вообще есть такая возможность, начните писать какой-нибудь код. У нас всегда больше работы, чем времени. Если вы можете написать код, то это ускорит процесс.
Предложения
На этой доске мы перечисляем текущие нерешенные вопросы и функции, которые необходимо добавить. Если вы хотите начать вносить свой вклад в Keras, то с этого можно начать.
Запросы на включение
Где я должен подать запрос на включение?
Обратите внимание:
Мы больше не добавляем новые возможности в мультибекендные Keras (мы исправляем только ошибки), так как мы переориентируем усилия по разработке на tf.keras. Если вы все еще заинтересованы в отправке запроса на добавление новых возможностей, пожалуйста, направьте его на tf.keras в репозитории TensorFlow.
Улучшения и исправления в 1.keras идут в главную ветку Keras.
2.экспериментальные новые возможности, такие как слои и наборы данных, переходят в keras-contrib. Если только это не новая возможность, перечисленная в Запросах на Вклады, то в этом случае она принадлежит ядру Keras. Если вы считаете, что ваша особенность принадлежит ядру Keras, вы можете послать конструкторский документ, объясняющий вашу особенность и аргументирующий ее (см. пояснения ниже).
Обратите внимание, что PR, которые в первую очередь касаются стиля кода (в отличие от исправления ошибок, улучшения документации или добавления новой функциональности), скорее всего, будут отклонены.
Вот краткое руководство по отправке ваших улучшений:
Если ваш PR-специалист вносит изменения в функциональность, начните с написания проектной документации и отправки ее в список рассылки Keras, чтобы обсудить, следует ли внести изменения и как с ними справиться. Это избавит вас от того, чтобы ваш PR-документ был закрыт! Конечно, если ваш PR — это простое исправление ошибок, вам не нужно этого делать. Процесс написания и подачи проектной документации следующий:
Начните с этого шаблона Google Doc и скопируйте его в новый Google Doc.
Заполните содержимое. Обратите внимание, что вам нужно будет вставить примеры кода. Чтобы вставить код, используйте расширение Google Doc, такое как CodePretty (существует несколько таких расширений).
Установите настройки обмена «каждый со ссылкой разрешено комментировать».
Отправьте документ по адресу keras-users@googlegroups.com с темой, которая начинается с [API DESIGN REVIEW] (все прописные буквы), чтобы мы это заметили.
Ждите комментариев и отвечайте на них по мере их поступления. Отредактируйте предложение по мере необходимости.
Предложение будет окончательно одобрено или отклонено. После утверждения вы можете отправить Pull Requests (Тяните Запросы) или попросить других написать Pull Requests (Тяните Запросы).
Написать код (или попросить других написать его). Это самая сложная часть!
Убедитесь, что любая новая функция или класс, который вы вводите, имеет соответствующие строки. Убедитесь, что любой код, к которому вы прикасаетесь, содержит актуальные строки и документацию. Стиль строк должен соблюдаться. В частности, они должны быть отформатированы в MarkDown, и в них должны быть разделы для Аргументов, Возвратов, Подъемов (если применимо). Посмотрите другие строки в кодовой базе для примера.
Пишите тесты. Ваш код должен иметь полное покрытие модульного теста. Если вы хотите, чтобы ваш PR быстро слился, это очень важно.
Запустите наш набор тестов на месте. Это просто: из папки Keras, просто запустите: py.test tests/.
Вам также нужно будет установить требования к тестам: pip install -e .[tests].
Убедитесь, что все тесты прошли:
с бэкэндом Theano, на Python 2.7 и Python 3.6. Убедитесь, что у вас есть разрабатываемая версия Theano.
с бэкэндом TensorFlow, на Python 2.7 и Python 3.6. Убедитесь, что у вас есть версия разработки TensorFlow.
с бэкэндом CNTK, на Python 2.7 и Python 3.6. Убедитесь, что у вас есть версия разработки CNTK.
Мы используем синтаксис PEP8, но мы не догматичны, когда речь заходит о длине строки. Убедитесь, что ваши строки остаются достаточно длинными. Чтобы облегчить вам жизнь, мы рекомендуем использовать PEP8:
Установите пакеты PEP8: pip установите pep8 pytest-pep8 autopep8.
Запустите автономную проверку PEP8: py.test —pep8 -m pep8
Вы можете автоматически исправить некоторую ошибку PEP8, запустив: autopep8 -i —select <errors> <FILENAME>, например: autopep8 -i —select E128 tests/keras/backend/test_backends.py.
При фиксации используйте соответствующие описательные сообщения о фиксации.
Обновить документацию. При внедрении новой функциональности обязательно включите фрагменты кода, демонстрирующие использование новой функции.
Отправьте свой PR. Если ваши изменения были одобрены в предыдущем обсуждении, и если у вас есть полные (и прошедшие) тесты модулей, а также соответствующие строки документации, ваш PR, скорее всего, будет слит воедино в кратчайшие сроки.
Добавление новых примеров
Даже если вы не вносите свой вклад в исходный код Keras, если у вас есть краткое и мощное приложение Keras, пожалуйста, подумайте о том, чтобы добавить его в нашу коллекцию примеров. Существующие примеры показывают идиоматический код Keras: убедитесь, что ваш собственный скрипт выполнен в том же духе.