/:“NoneType”和“float”的操作数类型不受支持

2024-09-30 03:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个用于训练神经网络的生成器。我使用return查看图像是否正常,但我遇到了这个错误。当使用yield时,我们还可以看到生成器内部的数据。我得到了第一个图像,然后出现了错误

import os
import numpy as np
import cv2
def generator(idir,odir,batch_size,shuffle ):
    input_image_batch=[]
    output_image_batch=[]
    i_list=os.listdir(idir)
    o_list=os.listdir(odir)
    batch_index=0
    batch_size = batch_size
    sample_count=len(i_list)
    for i in range(batch_index * batch_size, (batch_index + 1) * batch_size  ): 
        #iterate for  a batch
        j=i % sample_count # cycle j value over range of available  images
        k=j % batch_size  # cycle k value over batch size
        if shuffle == True: # if shuffle select a random integer between 0 and sample_count-1 to pick as the image=label pair
            m=np.random.randint(low=0, high=sample_count-1, size=None, dtype=int) 
        else:
            m=j
        path_to_in_img=os.path.join(idir,i_list[m])
        path_to_out_img=os.path.join(odir,o_list[m])
        print(path_to_in_img,path_to_out_img)
        input_image=cv2.imread(path_to_in_img)
        input_image=cv2.resize(input_image,(3200,3200))#create the target image from the input image 
        output_image=cv2.imread(path_to_out_img)
        output_image=cv2.resize(output_image,(3200,3200))
        input_image_batch.append(input_image)
        output_image_batch.append(output_image)
                    
        input_val1image_array=np.array(input_image_batch) 
        input_val1image_array = input_val1image_array / 255.0
        output_val2image_array=np.array(output_image_batch)
        outputput_val2image_array = output_val2image_array / 255.0
    batch_index= batch_index + 1 
    return (input_val1image_array, output_val2image_array)

idir = r"D:\\validation"
odir=r"D:\\UAV\\validation"
train = generator(idir,odir,5,True)

列车=发电机(idir,odir,5,真)

Error:

     ----> 3 train = generator(idir,odir,5,True)

<ipython-input-28-9141aec040be> in generator(idir, odir, batch_size, shuffle)
     29 
     30         input_val1image_array=np.array(input_image_batch)
---> 31         input_val1image_array = input_val1image_array / 255.0
     32         output_val2image_array=np.array(output_image_batch)
     33         outputput_val2image_array = output_val2image_array / 255.0

TypeError: unsupported operand type(s) for /: 'NoneType' and 'float'

Tags: topathimageimginputoutputsizeos

热门问题