我想知道我是否可以使用Tensorflow数据集来训练scikit-learn和其他ML框架。
所以,例如,我可以采取tf.data.dataset
训练xgboost, logisticregg,随机森林分类器等?即是否可以将tf.data.dataset
对象传递到这些模型的.fit()
方法中进行训练?
I tried out:
xs=np.asarray([i for i in range(10000)]).reshape(-1, 1)
ys=np.asarray([int(i%2==0)for i in range(10000)])
xs = tf.data.Dataset.from_tensor_slices(xs)
ys = tf.data.Dataset.from_tensor_slices(ys)
cls.fit(xs, ys)
我得到以下错误:
TypeError: float() argument must be a string or a number, not 'TensorSliceDataset'
您可以使用as_numpy_iterator()
方法;来自文档:
返回一个迭代器,将数据集的所有元素转换为numpy。
跟随你的例子:
from sklearn.svm import SVC
x = list(xs.as_numpy_iterator())
y = list(ys.as_numpy_iterator())
clf = SVC(gamma='auto')
clf.fit(x, y)