草庐IT

Iterator与Generator

全部标签

python - 系统错误 : <built-in function xxx_iterator> returned a result with an error set

我正在尝试升级:SWIG2.0.11和Python2.7.12到SWIG3.0.12和Python3.6,但是在任何迭代器(使用%template自动生成)上运行测试时出现以下异常:SystemError:returnedaresultwithanerrorset例如,即使是最简单的迭代也会失败:Traceback(mostrecentcalllast):File"testRender.py",line459,intestRenderforvinvertices:File"ncore.py",line90833,in__iter__returnself.iterator()File"n

python - Keras 的 `model.fit_generator()` 行为不同于 `model.fit()`

我有一个巨大的数据集,我需要以生成器的形式提供给Keras,因为它不适合内存。但是,使用fit_generator,我无法复制在使用model.fit进行常规训练时得到的结果。而且每个纪元持续的时间要长得多。我实现了一个最小的例子。也许有人可以告诉我问题出在哪里。importrandomimportnumpyfromkeras.layersimportDensefromkeras.modelsimportSequentialrandom.seed(23465298)numpy.random.seed(23465298)no_features=5no_examples=1000defge

python - keras model.fit_generator() 比 model.fit() 慢几倍

甚至从Keras1.2.2开始,引用merge,它确实包含多处理,但由于磁盘读取速度限制,model.fit_generator()仍然比model.fit()慢4-5倍。如何加快速度,比如通过额外的多处理? 最佳答案 您可能需要检查documentation中fit_generator()的workers和max_queue_size参数.本质上,更多的worker会创建更多的线程来将数据加载到将数据馈送到网络的队列中。不过,填满队列可能会导致内存问题,因此您可能希望减小max_queue_size以避免这种情况。

python - asyncio 的 call_later raises 'generator' object is not callable with coroutine object

我有一些使用call_later使用Python3.4的asyncio制作的简单代码。代码应该打印,等待10秒,然后再次打印(但是在应该执行end()时引发TypeError,见下文):importasyncio@asyncio.coroutinedefbegin():print("Startingtowait.")asyncio.get_event_loop().call_later(10,end())@asyncio.coroutinedefend():print("completed")if__name__=="__main__":try:loop=asyncio.get_eve

python - 类型错误 : 'generator' object has no attribute '__getitem__'

我写了一个应该返回字典的生成函数。但是,当我尝试打印一个字段时,出现以下错误printrow2['SearchDate']TypeError:'generator'objecthasnoattribute'__getitem__'这是我的代码fromcsvimportDictReaderimportpandasaspdimportnumpyasnpdefgenSearch(SearchInfo):forrow2inDictReader(open(SearchInfo)):yieldrow2train='minitrain.csv'SearchInfo='SearchInfo.csv'r

python - 为什么这个 Fizz Buzz 生成器比这个 Fizz Buzz Iterator 类快得多?

在学习了迭代器类方法和生成器之后,我测试了使用每个习语的简单FizzBuzz解决方案的性能特征:>>>fromtimeitimporttimeit>>>timeit('tuple(fizzbuzz.FizzBuzzIterator(10))','importfizzbuzz')13.281935930252075>>>timeit('tuple(fizzbuzz.fizz_buzz_generator(10))','importfizzbuzz')7.619534015655518根据timeit,生成器函数比迭代器类快1¾倍。我的问题又来了:为什么这个FizzBuzz生成器比这个Fi

python - 如何将 fit_generator 与多个输入一起使用

是否可以有两个fit_generator?我正在创建一个有两个输入的模型,模型配置如下图。标签Y对X1和X2数据使用相同的标签。会继续出现下面的错误Errorwhencheckingmodelinput:thelistofNumpyarraysthatyouarepassingtoyourmodelisnotthesizethemodelexpected.Expectedtosee2array(s),butinsteadgotthefollowinglistof1arrays:[array([[[[0.75686276,0.75686276,0.75686276],[0.7568627

python - Keras:如何将 fit_generator 与不同类型的多个输出一起使用

在具有函数式API的Keras模型中,我需要调用fit_generator以使用ImageDataGenerator对增强图像数据进行训练。问题是我的模型有两个输出:我试图预测的掩码和一个二进制值。我显然只想增加输入和掩码输出,而不是二进制值。我怎样才能做到这一点? 最佳答案 下面的例子可能是不言自明的!“虚拟”模型接受1个输入(图像)并输出2个值。该模型计算每个输出的MSE。x=Convolution2D(8,5,5,subsample=(1,1))(image_input)x=Activation('relu')(x)x=Fla

python - make_initializable_iterator 和 make_one_shot_iterator 之间的 tensorflow 数据集 API 差异

我想知道make_initializable_iterator和make_one_shot_iterator的区别。1.Tensorflow文档说“一次性”迭代器目前不支持重新初始化。这到底是什么意思?2.下面两个片段是等价的吗?使用make_initializable_iteratoriterator=data_ds.make_initializable_iterator()data_iter=iterator.get_next()sess=tf.Session()sess.run(tf.global_variables_initializer())foreinrange(1,epo

python - 如何将 predict_generator 与 ImageDataGenerator 一起使用?

我是Keras的新手。我训练了一个模型并想预测存储在子文件夹中的一些图像(例如用于训练)。为了进行测试,我想预测7个类(子文件夹)中的2个图像。下面的test_generator看到了14张图像,但我得到了196个预测。错误在哪里?非常感谢!test_datagen=ImageDataGenerator(rescale=1./255)test_generator=test_datagen.flow_from_directory(test_dir,target_size=(200,200),color_mode="rgb",shuffle="false",class_mode='cate