Tensorflow 如何在不转换为密集数据的情况下将发电机数据拆分为列车和测试?
我希望将生成器数据拆分为训练和测试,而不转换为密集数据以减少RAM消耗Tensorflow 如何在不转换为密集数据的情况下将发电机数据拆分为列车和测试?,tensorflow,scipy,scikit-learn,Tensorflow,Scipy,Scikit Learn,我希望将生成器数据拆分为训练和测试,而不转换为密集数据以减少RAM消耗 将numpy导入为np 导入tensorflow作为tf 从sklearn.model\u选择导入列车\u测试\u拆分 #数据集 ds=np.array([ ('Alice',0), ('Bob',1), ('Charlie',1), ]) x=ds[:,0] y=ds[:,1] #将文本转换为数字向量 最大顺序=最大(x,键=len) 词汇处理器=tf.contrib.learn.preprocessing.词汇处理器(l
将numpy导入为np
导入tensorflow作为tf
从sklearn.model\u选择导入列车\u测试\u拆分
#数据集
ds=np.array([
('Alice',0),
('Bob',1),
('Charlie',1),
])
x=ds[:,0]
y=ds[:,1]
#将文本转换为数字向量
最大顺序=最大(x,键=len)
词汇处理器=tf.contrib.learn.preprocessing.词汇处理器(len(max_序列))
text_processed=vocab_处理器.fit_变换(x)
打印(类型(文本处理))#
#分为培训和测试
x_火车\
x_检验\
你的火车\
y_测试=序列测试分割(文本处理,y)
然而,列车试验分离
投诉:
TypeError: Singleton array array(<generator object VocabularyProcessor.transform at 0x116f6f830>, dtype=object) cannot be considered a valid collection`
TypeError:无法将单例数组(,dtype=object)视为有效集合`
问题
- 如何将文本分割为稀疏数据
- 是否值得尝试而不是
词汇处理器
假设我尝试使用更多的数据和更长的文本。我不知道
tensorflow
,但是numpy
数组总是从完整列表中构建,或者从iter从iterable中构建fromiter
要求指定数据类型并返回1dnp.array()
生成一个1元素的对象数组,其中包含未计算的生成器。train\u test\u split
中的错误表示提供给它的数据不是数组train\u test\u split
可以完美地处理稀疏数组。但它不能操纵发电机。您需要迭代生成数组,然后将其传递到train\u test\u split
。