我是否需要在Kfold循环中重置模型权重?

时间:2019-05-13 14:46:49

标签: python machine-learning keras scikit-learn deep-learning

我想用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 个答案:

答案 0 :(得分:1)

由于在循环中使用model = Sequential()(即定义模型) ,因此在每次迭代中,模型实际上都是“重置”(实际上是新定义的),因此您不必无需采取任何进一步的行动。