我在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)
我想返回两个方向盘和图像以及不能使用返回,因为它将打破循环
这是因为当您使用
yield
关键字时,它会使函数返回生成器对象而不是元组。为了从生成器中获得images, steer
的所有不同排列,您需要这样做。。。你知道吗当您调用一个生成器时,您创建了一个生成器对象,它是一个iterable实例。如果只需要从中提取一个
yield
值,那么可以使用next
相关问题 更多 >
编程相关推荐