python - function_f()(variable_v) 的含义和工作方式( () 中后跟变量的函数)

标签 python python-3.x tensorflow keras python-module

我最近开始使用 Keras,在他们的文档中,显示了几行代码

inp = Input(shape=(2,))

hl_x = Dense(4, activation='tanh', name= 'First_Hidden_Layer_Following_Input' )(inp)

哪里

type(Input)

>> function

type(inp)

>>>tensorflow.python.framework.ops.Tensor

Input 是一个函数,inp 是一个 tensor 类型的变量

这是什么意思以及它是如何工作的?

最佳答案

Dense(....) 返回一个对象,that can be __called__() ,类似于参数化函数:

def print_multiple(k):
    """Returns a function that prints 'k' times whatever you give it."""
    return lambda x: print(*(x for _ in range(k)))

print_multiple(6)("Merry")  
print_multiple(4)("Christmas")  

打印

Merry Merry Merry Merry Merry Merry
Christmas Christmas Christmas Christmas 

keras.layers.dense是一个可调用对象 - 所以沿着以下路线:

class PrintMult:
    """Object that prints 'how_often' times whatever you give it."""
    def __init__(self, how_often):
        self.how_often = how_often

    def __call__(self, what_ever):
        print(*(what_ever for _ in range(self.how_often)))

PrintMult(5)("Yeeha")    # Yeeha Yeeha Yeeha Yeeha Yeeha

关于python - function_f()(variable_v) 的含义和工作方式( () 中后跟变量的函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59420425/

相关文章:

带套接字的 python 聊天室无法按预期工作

tensorflow - 在 Pytorch 中计算空间轴上的方差

python - OSX 上的 Tensorflow 0.10 (CUDA) 在 python 导入时出现段错误

python - 在字符串中搜索不同的子字符串

python - 将字符串 "Jun 1 2005 1:33PM"转换为日期时间

javascript - 是否有任何库可以为 JSON 数据生成元组和重构字符串?

tensorflow - 如何卸载 NVIDIA 内核模块 'nvidia' 以安装新驱动程序?

python - 如何检查 Django Queryset 是否返回多个对象?

python-3.x - 无法导入 PySimpleGUI

python - Python 3.6 及更早版本的精确时间(纳秒)?