Я видел, как кто-то говорил, что у него также есть ошибка при вызове Tuner.search в Windows (я на машине с Windows), но это произошло из-за имени файла, который они давали, я попробовал эту штуку, но это ничего не изменило. Я не знаю, что делать, чтобы использовать это. Я также проверил, хорошо ли созданы модели, и похоже, что это так.
Вот мой код:
Код: Выделить всё
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.read_csv("resultats/resultats11.csv")
var = dataframe.columns.drop(['epidemic peak', 'time to extinction','nombre de noeuds', "nombre d'aretes", 'degre moyen', 'degre minimal', 'degre maximal', 'distance moyenne', 'nombre de smart honeypots', 'nombre de honeypots', 'nombre inf 5', 'nombre res 5'])
X = dataframe[var]
Y = dataframe[['epidemic peak']]
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([("PropagationType", OneHotEncoder(), [0])], remainder="passthrough", sparse_threshold=0, verbose=True)
X = ct.fit_transform(X) ### encodage factice
sc_x = StandardScaler()
sc_y = StandardScaler()
from sklearn.model_selection import train_test_split
x_train1, x_test, y_train1, y_test = train_test_split(X, Y, test_size=0.15, random_state=1, shuffle=True)
x_train, x_val, y_train, y_val = train_test_split(x_train1, y_train1, test_size=(0.15/0.85), random_state=12, shuffle= True)
x_train = sc_x.fit_transform(x_train)
x_val = sc_x.transform(x_val)
x_test = sc_x.transform(x_test)
y_train = sc_y.fit_transform(y_train)
y_val = sc_y.transform(y_val)
y_test = sc_y.transform(y_test)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras import optimizers
from tensorflow.keras import metrics
import keras_tuner as kt
def create_model(neurons1, neurons2, lr):
model = Sequential()
model.add(Dense(neurons1, input_dim=10, activation='relu'))
model.add(Dense(neurons2, activation='relu'))
model.add(Dense(1, activation='relu'))
model.compile(optimizer=optimizers.Adam(learning_rate=lr), loss = 'mean_absolute_percentage_error', metrics=[metrics.RootMeanSquaredError()])
return model
def build_model(hp):
neurons1 = hp.Int("units1", min_value=32, max_value=512, step=32)
neurons2 = hp.Int("units2", min_value=32, max_value=512, step=32)
lr = hp.Float("learning_rate", min_value=1e-4, max_value=1e-2, sampling="log")
model = create_model(neurons1, neurons2, lr)
return model
import os
tuner = kt.BayesianOptimization(
build_model,
objective = 'val_root_mean_squared_error',
max_trials=20,
directory=os.path.normpath(r'C:\Users\yassi\Desktop'),
overwrite = True)
tuner.search(x_train, y_train, validation_data=(x_val, y_val), epochs = 30, batch_size=32, shuffle=True)
И вот у меня есть ошибка:
Traceback (большинство последний вызов):
Файл "c:\Users\yassi.julia\conda\3\x86_64\lib\site-packages\keras_tuner\src\engine\base_tuner.py", строка 274, в _try_run_and_update_trial
self._run_and_update_trial(trial, *fit_args, **fit_kwargs)
Файл "c:\Users\yassi.julia\conda\3\x86_64\lib\site-packages\keras_tuner\src\engine\base_tuner. py", строка 239, в _run_and_update_trial
results = self.run_trial(trial, *fit_args, **fit_kwargs)
Файл "c:\Users\yassi.julia\conda\3\x86_64\lib\ site-packages\keras_tuner\src\engine\tuner.py", строка 314, в run_trial
obj_value = self._build_and_fit_model(trial, *args, **copied_kwargs)
Файл "c:\Users\ yassi.julia\conda\3\x86_64\lib\site-packages\keras_tuner\src\engine\tuner.py", строка 233, в _build_and_fit_model
results = self.hypermodel.fit(hp, model, *args , **kwargs)
Файл "c:\Users\yassi.julia\conda\3\x86_64\lib\site-packages\keras_tuner\src\engine\hypermodel.py", строка 149, в размере
return model.fit(*args, **kwargs)
Файл "c:\Users\yassi.julia\conda\3\x86_64\lib\site-packages\keras\src\utils\traceback_utils.py ", строка 122, в error_handler
поднимите e.with_traceback(filtered_tb) из None
Файл "c:\Users\yassi.julia\conda\3\x86_64\lib\site-packages\keras_tuner\src \engine\tuner_utils.py", строка 76, в on_epoch_end
self._save_model()
файл "c:\Users\yassi.julia\conda\3\x86_64\lib\site-packages\keras_tuner \src\engine\tuner_utils.py», строка 86, в _save_model
self.model.save_weights(write_filepath)
AttributeError: у объекта «NoneType» нет атрибута «Файл»
Есть ли у кого-нибудь идеи, как решить эту проблему или уже сталкивался с этой проблемой?
Кстати, я использую keras_tuner 1.4.7 и tensorflow 2.16.1.< /п>
Подробнее здесь: https://stackoverflow.com/questions/786 ... eras-tuner