python - 在 python 中同时产生两个变量时出错

标签 python machine-learning deep-learning

我正在Python中创建一个函数来生成一批图像并将其返回给两个变量的主函数,但这会产生此错误“太多值无法解压预期2”

尝试使用 return 代替,但得到了相同的错误,并且当仅返回一个变量时,效果很好。

这是生成器函数:

def batch_generator(data_dir, image_paths, steering_angles, batch_size, is_training):
    images = np.empty([batch_size, IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANNELS])
    steers = np.empty(batch_size)
    while True:
        i = 0
        for index in np.random.permutation(image_paths.shape[0]):
            center, left, right = image_paths[index]
            steering_angle = steering_angles[index]
            # argumentation
            if is_training and np.random.rand() < 0.6:
                image, steering_angle = augument(data_dir, center, left, right, steering_angle)
            else:
                image = load_image(data_dir, center) 
            # add the image and steering angle to the batch
            images[i] = preprocess(image)
            steers[i] = steering_angle
            i += 1
            if i == batch_size:
                break
        print(images[0])
        yield images, steers

这是调用它的行

images, steer = batch_generator(data_dir, X_train, y_train, 5, True)

我也想返回转向和图像,但不能使用 return,因为它会跳出循环

最佳答案

这是因为当您使用 yield 关键字时,它会使您的函数返回生成器对象而不是元组。为了从生成器中获取 images, steer 的所有不同排列,您需要执行以下操作...

for images, steer in batch_generator(data_dir, X_train, y_train, 5, True):
    # do something...

关于python - 在 python 中同时产生两个变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56673878/

相关文章:

python - 在 Python 2 中指定自定义日志记录 Linux 文件路径

python - 如何预测不超过目标示例?

opencv - 错误13错误C1083:无法打开包含文件: 'cudnn.h':没有这样的文件或目录…\caffe\util\cudnn.hpp 5 1 convert_imageset

deep-learning - pytorch动态计算图中的权重更新是如何工作的?

python - TorchScript 需要源代码访问才能对 collections.deque 进行编译

Python 研究换行符

python - 卸载旧版本的 python (fedora)

python - 为什么在seaborn图中设置色调会改变点的大小?

matlab - 使用 matlab 进行一维高斯贝叶斯分类

matlab - 迭代 matlab 单元格