После работы с примером учебника tensorflow в colab: Базовая регрессия: прогнозирование эффективности использования топлива, который можно найти здесь: https://www.tensorflow.org/tutorials/keras/regression.
Я пытался запустить этот пример на ноутбуке jupyter через anaconda, чтобы иметь возможность запускать его и в автономном режиме.
Код, который можно найти по ссылке, отлично работает в Google Colab, но когда я пытаюсь запустить его на ноутбуке Jupyter, я получаю вектор nan.
Код построения последовательной модели: [откуда может возникнуть проблема]
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
Код, который я использовал, — это код, который вы можете найти по этой ссылке ниже: tensorflow.org/tutorials/keras/regression Я сохранил этот код и попытался запустить его в своей лаборатории jupyter через anaconda. Это один и тот же код как в colab, так и в jupyter. Я не понимаю, почему я получил другую форму вывода для слоя normalization_1. Спасибо за попытку помочь мне.
Я вижу, вы используете разные модели в них. В Colab вы использовали модель, имеющую всего 5 параметров тогда как в Notebook вы используете плотную модель с 944 параметрами.
Попробуйте сначала запустить модель с меньшим количеством параметров на ноутбуке. или Попробуйте запустить одну и ту же модель на обоих (возможно, сложная модель не была полностью обучена).
РЕДАКТИРОВАТЬ 1: Я создал блокнот jupyter и попробовал код. В моей системе он работает нормально, попробуйте запустить этот блокнот Jupyter в своей системе. Блокнот Юпитер . Если это работает, возможно, в вашем коде есть синтаксическая ошибка.
Обновлено еще раз: Обновить тензорный поток:
pip install --ignore-installed --upgrade tensorflow
используйте эту или любую другую команду, которая работает в вашей версии.
Это именно то, что я думал. Но то, как я сделал модель, одинаково и в colab, и в jupyter. Вот почему я не понимаю, почему это должно работать в colab, но не в jupyter. Нет никаких причин, по которым количество параметров должно было бы отличаться как в блокноте colab, так и в блокноте jupyter.
можете ли вы поделиться подробностями модели, потому что здесь немного неясно, что именно делает модель
конечно, только что отредактировал. Спасибо за помощь.
Делюсь своим блокнотом в ответ. Я редактирую ответ, проверьте его и дайте мне знать.
Вы уверены, что запускали его в лаборатории jupyter через анаконду? по какой-то причине у меня все еще возникает та же проблема: ibb.co/JB8drvD спасибо
Можешь поделиться блокнотом? с выходами
конечно, я смогу загрузить его через 2 дня. Еще хотел спросить, может быть проблема в отсутствующих пакетах? Я думал, что tensorflow автоматически устанавливает набор инструментов cudnn и cuda, а для поддержки GPU мне нужно установить соответствующий драйвер самостоятельно, я прав? еще раз большое спасибо за вашу помощь
да, ты прав. Это может быть причиной. Дайте мне знать, когда вы загрузите его. также, можете ли вы поставить галочку в моем ответе, это помогает в создании репо.
Привет, я загрузил свой блокнот. Моя галочка на ваш ответ в порядке? сначала не заметил - сорри.
на самом деле вы отметили мой комментарий, а не ответ. в этом нет проблем, я видел ваш блокнот, попробуйте обновить свой тензорный поток. и попробуйте запустить его снова.
Большое спасибо, это сработало. Значит, проблема была в версии моего tensorflow-gpu? 2.1 уже не годится?
есть некоторые изменения в способе ввода параметров последовательных моделей, также были разделены keras.
Добавление дополнительного набора скобок вокруг каждого значения лошадиных сил решает проблему для меня:
horsepower = np.array([[h] for h in train_features['Horsepower']])
На первом изображении слой
normalization_1
имеет выходную форму(None, 1)
, тогда как на втором изображении это(None, 314)
. Пожалуйста, включите код формы ввода для обоих примеров.