Модель сохранения Keras - PullRequest
0 голосов
/ 11 июля 2020

Думаю, это глупый вопрос, что означает, что я просто где-то делаю глупую ошибку, но ... Я сделал простую нейронную сеть и хочу сохранить модель для загрузки в другое место с дополнительными данными, но каждое сохранение Метод модели, который я использовал, давал мне ошибки. Любая помощь будет оценена. В статье часто задаваемых вопросов Keras это звучит просто. Возможно, стоит отметить, что я запускаю этот код на Colab ...

from tensorflow.keras.models import save_model

def swish(x, beta = 1):
     return (x * sigmoid(beta * x))

get_custom_objects().update({'swish': Activation(swish)})
dataset = pd.read_csv("/content/drive/My Drive/Cavity_Data_1/trainingData.csv")

#I have stuff going on here with normaliIng the dataset and assigning, splitting X and Y

model = Sequential()
model.add(Dense(6, activation = 'swish', input_shape =(6,))) #WOOO!
model.add(Dense(3, activation = 'swish'))
model.add(Dense(1, activation = 'linear'))

optimizer_choice = optimizers.adam(lr=0.005) 
model.compile(loss='mean_absolute_error', optimizer=optimizer_choice, metrics=['mae']) 
model.fit(X_train, Y_train, epochs = 5, verbose = 1) 
model.summary()

model.save('my_model')  # creates a HDF5 file 'my_model.h5'

Сообщение об ошибке: AttributeError Traceback (most recent call last) <ipython-input-15-bc680e78a9aa> in <module>() 83 from tensorflow.keras.models import load_model 84 ---> 85 model.save('my_model') # creates a HDF5 file 'my_model.h5' 86 del model 87

А также эта ошибка: AttributeError: 'Activation' object has no attribute '__name__'

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

Да, вы не можете сохранить эту модель, потому что эта часть здесь неверна:

get_custom_objects().update({'swish': Activation(swish)})

Так как вы используете «swi sh» в качестве функции активации, это не должен быть слой, поэтому вам просто нужно сослаться на функцию:

get_custom_objects().update({'swish': swish})

Тогда модель будет обучена и может быть успешно сохранена.

0 голосов
/ 11 июля 2020

можно сэкономить:

saver = tf.train.Saver(max_to_keep=1) 
with tf.Session() as sess:
    # train your model, then:
    savePath = saver.save(sess, 'someDir/my_model.ckpt')
...