Пример Tensorflow отлично работает в colab, но дает nan при работе в лаборатории jupyter

После работы с примером учебника tensorflow в colab: Базовая регрессия: прогнозирование эффективности использования топлива, который можно найти здесь: https://www.tensorflow.org/tutorials/keras/regression.
Я пытался запустить этот пример на ноутбуке jupyter через anaconda, чтобы иметь возможность запускать его и в автономном режиме. Код, который можно найти по ссылке, отлично работает в Google Colab, но когда я пытаюсь запустить его на ноутбуке Jupyter, я получаю вектор nan.

  1. Запуск в Google Colab дает:
    Запуск примера в google colab
  2. Запуск на jupyter дает:
    Запуск примера на jupyter lab

Код построения последовательной модели: [откуда может возникнуть проблема]

horsepower_model = tf.keras.Sequential([
    horsepower_normalizer,
    layers.Dense(units=1)
])

horsepower_model.summary()

Остальной код можно найти по этой ссылке, которую я прикрепил выше:
https://www.tensorflow.org/tutorials/keras/regression

Что должна делать модель:
Эта модель использует 2 массива из набора данных: MPG и лошадиные силы, и собирается использовать линейную регрессию с одной переменной, чтобы предсказать MPG из лошадиных сил.
Таким образом, модель представляет плотный слой с формой 1, как видно отсюда:

layers.Dense(units=1)

На выходе модели должны быть значения MPG, основанные на значениях лошадиных сил.
Тогда мы сможем сравнить его со значениями реальной MPG, полученной из набора данных.

Заранее спасибо.

Обновлено: я загружаю свой блокнот:
https://www.udrop.com/Jk3/Horsepower.ipynb

На первом изображении слой normalization_1 имеет выходную форму (None, 1), тогда как на втором изображении это (None, 314). Пожалуйста, включите код формы ввода для обоих примеров.

yudhiesh 10.12.2020 08:22

Код, который я использовал, — это код, который вы можете найти по этой ссылке ниже: tensorflow.org/tutorials/keras/regression Я сохранил этот код и попытался запустить его в своей лаборатории jupyter через anaconda. Это один и тот же код как в colab, так и в jupyter. Я не понимаю, почему я получил другую форму вывода для слоя normalization_1. Спасибо за попытку помочь мне.

niroo 10.12.2020 09:18
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
627
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я вижу, вы используете разные модели в них. В Colab вы использовали модель, имеющую всего 5 параметров тогда как в Notebook вы используете плотную модель с 944 параметрами.

Попробуйте сначала запустить модель с меньшим количеством параметров на ноутбуке. или Попробуйте запустить одну и ту же модель на обоих (возможно, сложная модель не была полностью обучена).

РЕДАКТИРОВАТЬ 1: Я создал блокнот jupyter и попробовал код. В моей системе он работает нормально, попробуйте запустить этот блокнот Jupyter в своей системе. Блокнот Юпитер . Если это работает, возможно, в вашем коде есть синтаксическая ошибка.

Обновлено еще раз: Обновить тензорный поток:

pip install --ignore-installed --upgrade tensorflow

используйте эту или любую другую команду, которая работает в вашей версии.

Это именно то, что я думал. Но то, как я сделал модель, одинаково и в colab, и в jupyter. Вот почему я не понимаю, почему это должно работать в colab, но не в jupyter. Нет никаких причин, по которым количество параметров должно было бы отличаться как в блокноте colab, так и в блокноте jupyter.

niroo 10.12.2020 08:21

можете ли вы поделиться подробностями модели, потому что здесь немного неясно, что именно делает модель

Harshit Agrawal 10.12.2020 10:03

конечно, только что отредактировал. Спасибо за помощь.

niroo 10.12.2020 10:42

Делюсь своим блокнотом в ответ. Я редактирую ответ, проверьте его и дайте мне знать.

Harshit Agrawal 10.12.2020 14:46

Вы уверены, что запускали его в лаборатории jupyter через анаконду? по какой-то причине у меня все еще возникает та же проблема: ibb.co/JB8drvD спасибо

niroo 10.12.2020 16:01

Можешь поделиться блокнотом? с выходами

Harshit Agrawal 10.12.2020 16:36

конечно, я смогу загрузить его через 2 дня. Еще хотел спросить, может быть проблема в отсутствующих пакетах? Я думал, что tensorflow автоматически устанавливает набор инструментов cudnn и cuda, а для поддержки GPU мне нужно установить соответствующий драйвер самостоятельно, я прав? еще раз большое спасибо за вашу помощь

niroo 11.12.2020 09:40

да, ты прав. Это может быть причиной. Дайте мне знать, когда вы загрузите его. также, можете ли вы поставить галочку в моем ответе, это помогает в создании репо.

Harshit Agrawal 11.12.2020 10:19

Привет, я загрузил свой блокнот. Моя галочка на ваш ответ в порядке? сначала не заметил - сорри.

niroo 13.12.2020 08:19

на самом деле вы отметили мой комментарий, а не ответ. в этом нет проблем, я видел ваш блокнот, попробуйте обновить свой тензорный поток. и попробуйте запустить его снова.

Harshit Agrawal 13.12.2020 10:40

Большое спасибо, это сработало. Значит, проблема была в версии моего tensorflow-gpu? 2.1 уже не годится?

niroo 13.12.2020 11:20

есть некоторые изменения в способе ввода параметров последовательных моделей, также были разделены keras.

Harshit Agrawal 13.12.2020 18:52

Добавление дополнительного набора скобок вокруг каждого значения лошадиных сил решает проблему для меня:

horsepower = np.array([[h] for h in train_features['Horsepower']])

Другие вопросы по теме