【发布时间】:2021-09-29 12:47:50
【问题描述】:
我正在写一个 RESNET,但我不明白“调用”函数在哪里使用。
也许这是 TensorFlow 自动调用的,所以这意味着我们必须编写一个名为“call”的函数?如果是这样,这个“调用”功能的确切要求应该是什么?谢谢!!
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, Sequential
class BasicBlock(layers.Layer):
def __init__(self, filter_num, strides=1):
super(BasicBlock, self).__init__()
self.conv1 = layers.Conv2D(filter_num, (3, 3), strides=strides, padding="same")
self.bn1 = layers.BatchNormalization()
self.relu = layers.Activation('relu')
self.conv2 = layers.Conv2D(filter_num, (3, 3), strides=1, padding="same")
self.bn2 = layers.BatchNormalization()
if strides != 1:
self.downsample = layers.Conv2D(filter_num, (1, 1), strides=strides)
else:
self.downsample = lambda x:x
def call(self, inputs, training=None):
out = self.conv1(inputs)
out = self.bn1(out, training=training)
out = self.relu(out)
out = self.conv2(out, training=training)
out = self.bn2(out)
identity = self.downsample(inputs)
output = layers.add([out, identity])
output = tf.nn.relu(output)
return output
【问题讨论】:
标签: python function tensorflow keras call