import tensorflow as tf
定义ResNetBlock
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class ResNetBlock(tf.keras.layers.Layer): def __init__(self,units): super(ResNetBlock,self).__init__() self.conv1 = tf.keras.layers.Conv2D(units, kernel_size=3, padding='same', use_bias=False) self.bn1 = tf.keras.layers.BatchNormalization()#批标准化 self.conv2 = tf.keras.layers.Conv2D(units, kernel_size=3, padding='same', use_bias=False) self.bn2 = tf.keras.layers.BatchNormalization()#批标准化 def call(self,x): shortcut = x out = self.conv1(x) out = tf.nn.relu(self.bn1(out)) out = self.conv2(out) out = tf.nn.relu(self.bn2(out)) out += shortcut return tf.nn.relu(out)
|
创建ResNetBlock对象
1
| resnet_block = ResNetBlock(64)
|
加载预训练模型ResNet50
1 2 3
| resnet50 = tf.keras.applications.ResNet50(include_top=False, weights='imagenet', input_shape=(256,256,3))
|
==结构绘图==
1
| tf.keras.utils.plot_model(resnet50)
|
·在anaconda
– conda install graphviz
– conda install pydotplus
·pip
– pip install graphviz
– pip install pydotplus
– pip install pydot
