Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何理解predict_generator中的步骤参数?_Python_Generator_Keras_Predict - Fatal编程技术网

Python 如何理解predict_generator中的步骤参数?

Python 如何理解predict_generator中的步骤参数?,python,generator,keras,predict,Python,Generator,Keras,Predict,我不太确定steps参数在predict_generator中的作用,我的理解是steps表示生成器生成的数据量,但有人否认我的答案,有人确认了我的答案 我通过实践仍然找不到正确的答案,我的方法是这样的,我用openslide读取一张5000x5000大小的图像,每个生成一张100x100的小地图来预测正常情况,我可以读取2500 100x100大小的图片,但当我设置步长=2500时是错误的 这是代码: # coding=utf-8 from __future__ import division

我不太确定steps参数在predict_generator中的作用,我的理解是steps表示生成器生成的数据量,但有人否认我的答案,有人确认了我的答案 我通过实践仍然找不到正确的答案,我的方法是这样的,我用openslide读取一张5000x5000大小的图像,每个生成一张100x100的小地图来预测正常情况,我可以读取2500 100x100大小的图片,但当我设置步长=2500时是错误的

这是代码:

# coding=utf-8
from __future__ import division
from keras.models import load_model
import openslide
import numpy as np
import Get_file_name
import  generator
import matplotlib.pyplot as plt

def predict_model(img):
    model = load_model(Get_file_name.model_path[0])
    y= model.predict_generator(generator.pre_gen(img),steps=30)
    print(y)

predict_model("cats_and_dogs_5")
这是错误的:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 612, in data_generator_task
generator_output = next(self._generator)
停止迭代

Traceback (most recent call last):
File "/home/zh/视频/MitosisDetection/mitosisDetection/predict.py", line 17, in <module>
predict_model("cats_and_dogs_5")
File "/home/zh/视频/MitosisDetection/mitosisDetection/predict.py", line 12, in predict_model
y= model.predict_generator(generator.pre_gen(img),steps=2500)
File "/usr/local/lib/python3.5/dist-packages/keras/legacy/interfaces.py", line 88, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/keras/models.py", line 1183, in predict_generator
verbose=verbose)
File "/usr/local/lib/python3.5/dist-packages/keras/legacy/interfaces.py", line 88, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 2108, in predict_generator
outs = self.predict_on_batch(x)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 1696, in predict_on_batch
outputs = self.predict_function(ins)
File "/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py", line 2229, in __call__
feed_dict=feed_dict)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 778, in run
run_metadata_ptr)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 961, in _run
% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape () for Tensor 'conv2d_1_input:0', which has shape '(?, 64, 64, 3)'

Process finished with exit code 1
回溯(最近一次呼叫最后一次):
文件“/home/zh/视频/有丝分裂检测/有丝分裂检测/预测.py“,第17行,in
预测模型(“猫和狗5”)
文件“/home/zh/视频/有丝分裂检测/有丝分裂检测/预测.py”,预测模型第12行
y=模型预测发电机(发电机预发电机(img),步数=2500)
文件“/usr/local/lib/python3.5/dist-packages/keras/legacy/interfaces.py”,第88行,在包装器中
返回函数(*args,**kwargs)
文件“/usr/local/lib/python3.5/dist-packages/keras/models.py”,第1183行,在predict\u生成器中
详细的
文件“/usr/local/lib/python3.5/dist-packages/keras/legacy/interfaces.py”,第88行,在包装器中
返回函数(*args,**kwargs)
文件“/usr/local/lib/python3.5/dist-packages/keras/engine/training.py”,第2108行,在predict\u生成器中
outs=批次上的自我预测(x)
文件“/usr/local/lib/python3.5/dist-packages/keras/engine/training.py”,第1696行,在批处理中预测
输出=自预测功能(ins)
文件“/usr/local/lib/python3.5/dist packages/keras/backend/tensorflow\u backend.py”,第2229行,在调用中__
进纸量=进纸量(进纸量)
文件“/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py”,第778行,正在运行
运行_元数据_ptr)
文件“/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py”,第961行,正在运行
%(np_val.shape,subfeed_t.name,str(subfeed_t.get_shape()))
ValueError:无法为具有形状“(?,64,64,3)”的张量“conv2d_1_输入:0”提供形状()的值
进程已完成,退出代码为1
如果步骤表示生成器生成的数据量,那么为什么将步骤设置为2500错误?如果步骤不表示生成器生成的数据量,那么我应该怎么做?如何设置生成器生成的数据量? 请上帝多多指教,我今天在身边,很多人都不明白这件事