k折交叉验证python代码_如何用tensorflow进行k折交叉验证?

我知道这个问题已经过时了,但如果有人想做类似的事情,请扩展一下ahmedhosny's答案:

新的tensorflow数据集API能够使用python生成器创建数据集对象,因此除了scikit learn的KFold选项外,还可以使用KFold.split()生成器创建数据集:import numpy as np

from sklearn.model_selection import LeaveOneOut,KFold

import tensorflow as tf

import tensorflow.contrib.eager as tfe

tf.enable_eager_execution()

from sklearn.datasets import load_iris

data = load_iris()

X=data['data']

y=data['target']

def make_dataset(X_data,y_data,n_splits):

def gen():

for train_index, test_index in KFold(n_splits).split(X_data):

X_train, X_test = X_data[train_index], X_data[test_index]

y_train, y_test = y_data[train_index], y_data[test_index]

yield X_train,y_train,X_test,y_test

return tf.data.Dataset.from_generator(gen, (tf.float64,tf.float64,tf.float64,tf.float64))

dataset=make_dataset(X,y,10)

然后可以在基于图的tensorflow中或使用紧急执行来迭代数据集。使用紧急执行:for X_train,y_train,X_test,y_test in tfe.Iterator(dataset):

....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值