如何解决分层的KFold交叉验证KerasValueError:找到的数组为暗4估计量应小于等于2
我需要使用分层的kfold(不平衡的多类任务)交叉验证keras模型。是否可以在(folds = list(StratifiedKFold(k,shuffle = True,random_state = 1).split(x_train,y_train)))中将image_image_generator(flow_from_directory)与x_train / y_train一起使用?在Kaggle({{3 }}),但x_train,y_train = next(train_generator)不能正确映射数据和标签。非常感谢您的帮助!
train_generator = ImageDataGenerator(rescale=1./255).flow_from_directory(
directory=train_path,target_size=input_img[:-1],color_mode="rgb",batch_size=BATCH_SIZE,classes=target_names,class_mode="input")
test_generator = ImageDataGenerator(rescale=1./255).flow_from_directory(
directory=test_path,class_mode="input",shuffle=False)
test_labels = test_generator.classes
#Instantiate to load data and generate k stratified folds
k = 5
def load_data_kfold(k):
#For StratifiedKFold,labels (y_train) must be 1-D array of labels (Cannot be one-hot)
x_train,y_train = next(train_generator)
print(x_train)
print(y_train)
folds = list(StratifiedKFold(k,shuffle=True,random_state=1).split(x_train,y_train))
return folds,x_train,y_train
folds,y_train = load_data_kfold(k)
Traceback (most recent call last):
File "C:/Users/LaRoche Lab/PycharmProjects/pythonProject2/R.py",line 122,in <module>
folds,y_train = load_data_kfold(k)
File "C:/Users/LaRoche Lab/PycharmProjects/pythonProject2/R.py",line 118,in load_data_kfold
folds = list(StratifiedKFold(k,y_train))
File "C:\Users\LaRoche Lab\Anaconda3\envs\tensorflow\lib\site-
packages\sklearn\model_selection\_split.py",line 735,in split
y = check_array(y,ensure_2d=False,dtype=None)
File "C:\Users\LaRoche Lab\Anaconda3\envs\tensorflow\lib\site-packages\sklearn\utils\validation.py",line 73,in inner_f return f(**kwargs)File "C:\Users\LaRoche Lab\Anaconda3\envs\tensorflow\lib\site-
packages\sklearn\utils\validation.py",line 642,in check_array
% (array.ndim,estimator_name))
ValueError: Found array with dim 4. Estimator expected <= 2.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。