这个问题可能很愚蠢,但我对Python还不太了解,不知道发生了什么.
model = Sequential(
# ...
)
predictions = model(x_train[:1]).numpy()
有人能解释一下model(x_train[:1])
在这里做什么吗?据我所知,模型是一个已经在上面构建的对象?这是否将对象用作方法/函数?还是这里发生了什么事?
这个问题可能很愚蠢,但我对Python还不太了解,不知道发生了什么.
model = Sequential(
# ...
)
predictions = model(x_train[:1]).numpy()
有人能解释一下model(x_train[:1])
在这里做什么吗?据我所知,模型是一个已经在上面构建的对象?这是否将对象用作方法/函数?还是这里发生了什么事?
在本例中,Tensorflow的作者为tf.keras.Sequential
类层次 struct 中的__call__
个"魔法方法"提供了一个实现.
这允许您像调用函数一样调用对象的实例.对model = Sequential(...)
的调用通过__init__
构造函数初始化类本身.model()
调用__call__
魔术方法.
Tensorflow和torch将其用作方便的包装,以便在网络中向前传递(在大多数情况下).