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,
)

作用:
用于构建网络的第一层——输入层,该层会告诉网络我们的输入的尺寸是什么,这一点很重要。例如使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,所以行数就+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)

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

tf.keras.utils.plot_model(resnet50)

报错:('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

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

参考博客

猜你喜欢

转载自blog.csdn.net/weixin_43845922/article/details/127589909