tensorflow1使用的为静态图模型,到了tensorflow2版本才改为动态图模型,那么问题来了,静态图和动态图主要有哪些区别
在我看来,静态图和动态图的区别主要在于静态图当中的predict函数
静态图获取输出的内容
outputs = model.predict(inputs)
此时静态图不会调用中间的函数,因为模型已经使用静态图部分定义好了,而动态图模型则是在预测的过程中调用前向传播函数
outputs = model(inputs)
此时动态图会调用模型处理的各个部分
所以要想查看静态图之中的调用部分,只能到静态图的定义部分去查看,因为定义完静态图之后调用静态图都是调用好的。
比如定义的模型为如下的语句:
transformer = MODEL(**configs)
此时定义模型的时候会使用前向传播的过程调用当中的各种步骤,就能够查看模型的具体内容了