• tensorflow2实现DenseNet分类CIFAR10遇到的各种问题


    tf.keras.layers.Input()输入层解析

    layers.Input(
        shape=None,
        batch_size=None,
        name=None,
        dtype=None,
        sparse=False,
        tensor=None,
        ragged=False,
        **kwargs,
    )
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    作用:
    用于构建网络的第一层——输入层,该层会告诉网络我们的输入的尺寸是什么,这一点很重要。例如使Model(input=x,output=y)构建网络,这种构建方式很常见,用途很广。
    参数含义:
    shape:输入的形状,tuple类型。不含batch_size;tuple的元素可以为None类型数据,表示未知的或者说任意的,一般这里不用None
    batch_size:声明输入的batch_size大小,一般会在预测时候用,训练时不需要声明,会在fit时声明,即dataset类型数据声明了batch_size
    name:给layers起个名字,在整个网络中不能出现重名。如果name=None,则系统会自动为该层创建名字。
    dtype:数据类型,在大多数时候,我们需要的数据类型为tf.float32,因为在精度满足的情况下,float32运算更快。
    参考博客

    ZeroPadding2D

    keras.layers.ZeroPadding2D(padding=(1, 1), data_format=None)
    
    • 1

    这里就表示上下都补充1,所以行数就+2;左右都补充1,所以列数就+2。

    当输入为图像,即2D输入时的零填充层,可以在图像张量的顶部,底部,左侧,右侧添加0表示的行和列

    参数:

    1. padding: 整数,或 2 个整数的元组,或 2 个整数的 2 个元组。
    • 如果为整数:将对宽度和高度运用相同的对称填充。
    • 如果为 2 个整数的元组:
    • 如果为整数:: 解释为高度和高度的 2 个不同的对称裁剪值:(symmetric_height_pad,symmetric_width_pad)。
    • 如果为 2 个整数的 2 个元组: 解释为((top_pad, bottom_pad), (left_pad, right_pad))。
    1. data_format: 字符串, channels_last (默认) 或 channels_first 之一, 表示输入中维度的顺序。channels_last 对应输入尺寸为 (batch, height, width, channels), channels_first 对应输入尺寸为 (batch, channels, height, width)。 它默认为从 Keras 配置文件 ~/.keras/keras.json 中 找到的 image_data_format 值。 如果你从未设置它,将使用 “channels_last”。

    参考博客

    keras.layers.convolutional.Conv2D

    keras.layers.convolutional.Conv2D(filters, # 卷积核数目
                                      kernel_size, # 过滤器的大小
                                      strides(1,1),  # 步长
                                      padding='valid', # 边界处理
                                      data_format=None, 
                                      dilation_rate=(1,1), 
                                      activation=None, # 激活函数
                                      use_bias=True, #是否使用偏置量,布尔值
                                      kernel_initializer='glorot_uniform',
                                      bias_initializer='zeros',
                                      kernel_regularizer=None,
                                      bias_regularizer=None,
                                      activity_regularizer=None,
                                      kernel_constraint=None,
                                      bias_constraint=None)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    解决(‘You must install pydot (pip install pydot) and install graphviz (see…) ‘, ‘for plot_model…

    tf.keras.utils.plot_model(resnet50)
    
    • 1

    报错:('Failed to import pydot. You must pip install pydot and install graphviz (https://graphviz.gitlab.io/download/), ', ‘for pydotprint to work.’)
    Solution

    pip install pydot
    pip install graphviz
    pip install pydotplus
    
    • 1
    • 2
    • 3

    有人说不能用pip安装graphviz,之后我就一直使用conda安装:conda install graphviz

    参考博客

  • 相关阅读:
    Go 企业级框架 Gin 版全新发布
    dns服务解析流程
    通俗易懂-二维数组只能省略列不能省略行-人话版本
    Linux C语言(8)
    第十九章Java绘图
    Linux Shell :正则表达式
    ElasticSearch之类型映射_mapping
    微服务注册中心简介
    进程与线程
    orchestrator数据库高可用组件搭建
  • 原文地址:https://blog.csdn.net/weixin_43845922/article/details/127589909