这个python运算结果显示错误,怎么修改

Call arguments received by layer "block2_pool" (type MaxPooling2D):
• inputs=tf.Tensor(shape=(None, 1, 1, 64), dtype=float32)

这个错误表示在使用MaxPooling2D这个层时,它的输入参数应该是一个形状为(None, height, width, channels)的四维张量,其中height和width应该是大于1的整数,而你传递的参数是一个形状为(None, 1, 1, 64)的四维张量,明显不符合要求。你需要检查你的代码,找出是哪条语句传递了这个错误的参数,然后修正这个参数的形状和维度。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7762208
  • 这篇博客也不错, 你可以看下为什么老说python是伪多线程,怎么解决?
  • 除此之外, 这篇博客: 用python处理各种文件中的 1.对图片的处理 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (1)读取一个文件夹下的所有图片

    import glob
    def load_train(train_path):
    	images = []
    	files = glob.glob(path)  #每个图像路径读取
    	for fl in files:
               image = cv2.imread(fl)
               images.append(image)
        return images
    train_path = './images_data/*.jpg'
    #train_path = './images_data/*g'
    

    (2)对图片的大小,类型进行设置

    import cv2
    import numpy as np
    image = cv2.resize(image, (image_size_h,image_size_w),0,0, cv2.INTER_LINEAR)  #图像缩放
    image = image.astype(np.float32)  #数据类型转换
    image = np.multiply(image, 1.0 / 255.0)   #归一化  np.multiply 乘法
    

    (3)删除包含特定字符的图片或者文件

    path="./images_data/"
    m1 = 'change_light'
    files=os.listdir(path)
    for f in enumerate(files):
    	    if f.find(m1)>=0 :
            	os.remove(path+f)
    
  • 您还可以看一下 黄棒清老师的Python实战量化交易理财系统课程中的 计算动量效应因子小节, 巩固相关知识点