При написании исследования Sherpa, как мне обратиться к «ModuleNotFoundError: модуль не назван «keras»» в моем вызове study.keras_callback»?

#tensorflow #machine-learning #optimization #keras #hyperparameters

#тензорный поток #машинное обучение #оптимизация #keras #гиперпараметры

Вопрос:

Я построил нейронную сеть, которая успешно выполняется с использованием tensorflow и keras. Теперь я пытаюсь оптимизировать гиперпараметры с помощью sherpa. Это мой первый раз, когда я использую sherpa, и я работаю с документацией. Я отключил панель мониторинга, потому что это казалось единственным выходом. Теперь я застрял в «study.keras_callback». Я получаю «ModuleNotFoundError: нет модуля с именем «keras»». В среде, в которой я работаю, установлен tensorflow, keras. Вот мой код:

 import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, models
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

parameters = [sherpa.Discrete('num_units', [50, 200])]
alg = sherpa.algorithms.RandomSearch(max_num_trials=50)

study = sherpa.Study(parameters=parameters,
                     algorithm=alg, disable_dashboard=True,
                     lower_is_better=True)
for trial in study:
    model = keras.Sequential([
        keras.layers.Dense(16, activation=tf.nn.relu,
                           input_shape=(X_train.shape[1],),
                           name='hidden_layer_1',),
        keras.layers.Dense(64, activation=tf.nn.relu,
                           input_shape=(X_train.shape[1],),
                           name='hidden_layer_2',),
        keras.layers.Dense(64, activation=tf.nn.relu,
                           input_shape=(X_train.shape[1],),
                           name='hidden_layer_3',),
        keras.layers.Dense(64, activation=tf.nn.relu,
                           input_shape=(X_train.shape[1],),
                           name='hidden_layer_4',),
        keras.layers.Dense(64, activation=tf.nn.relu,
                           input_shape=(X_train.shape[1],),
                           name='hidden_layer_5',),
        keras.layers.Dense(1, name='output_layer',)
    ])
    model.compile(loss='mse', optimizer = 'adam', metrics=['mae'])
    model.fit(X_train,y_train,epochs=200,verbose=0,
              callbacks=[study.keras_callback(trial, objective_name='val_loss')])
    study.finalize(trial)

 

Заранее благодарю за любую оказанную помощь.

Ответ №1:

вам необходимо установить keras отдельно. Do: pip install keras надеюсь, это поможет

Комментарии:

1. Итак, у меня написано: import tensorflow as tf from tensorflow import keras разве это не одно и то же? Или мне тоже нужно это сделать? Я также, вероятно, должен упомянуть, что я пишу этот скрипт в записной книжке Jupyter, и в среде, в которой я запускаю ядро, уже установлены tensorflow, keras, sklearn.

2. импорт tensorflow и keras из tensorflow действует только в вашем открытом ноутбуке. в то время как ваш шерпа core.py (и его функция keras_callbacks, которая выдает вам эту ошибку) ищет модуль keras в ваших установленных модулях. Итак, что вам нужно, так это установить keras непосредственно с вашего терминала.