我想用 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 吗?我该怎么做?
最佳答案
由于您在循环内使用 model = Sequential()
(即您定义模型),您的模型确实在循环中“重置”(实际上是新定义的)每次迭代,因此您无需采取任何进一步的操作。
关于python - 我需要在 Kfold 循环中重置模型权重吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56114779/