Нужно ли сбрасывать вес модели в цикле Kfold? - PullRequest
0 голосов
/ 13 мая 2019

Я хочу проверить точность моей модели с помощью Kfold.Я хочу, чтобы веса моделей сбрасывались между каждой итерацией, поэтому я не буду продолжать вычислять веса предыдущих итераций.Достаточно ли приведенного ниже кода?Или модель существует вне цикла в бэкэнде keras?

from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import StratifiedKFold
from sklearn.utils import shuffle
import tensorflow as tf

kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
sess = tf.InteractiveSession()

for train, test in kfold.split(X, Y):
    model = Sequential()
    model.add(Conv2D)
    #Add more layers
    model.compile()
    model.fit()

    #Calculate accuracy for each test element (pseudo code)
    modelprediction=model.predict(testvalue1,2,3,4,5)
    indexes = tf.argmax(modelprediction, axis=1)

    print(totalAccuracy)

Сохраняют ли весы sess = tf.Interactive и Keras как-нибудь?Должен ли я сбросить sess и keras?Как мне это сделать?

1 Ответ

1 голос
/ 13 мая 2019

Поскольку вы используете model = Sequential() (то есть вы определяете модель) внутри цикла, ваша модель действительно «сбрасывается» (заново определенная, фактически) в каждой итерации, поэтому вам не нужнопредпринять любые дальнейшие действия.

...