日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何查看tensorflow源代码

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何查看tensorflow源代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

剛入門機器學習相關的軟件包時,里面好多函數參數不知道應該怎么填,很茫然,這就需要看他自己的函數是怎么實現的,最起碼知道調用的函數需要什么參數,報錯了也不知道為什么會報錯,如果只是依賴網上查,出錯了就去網上搜,有點不知所以然,以下總結了一些對應方法,需要的點贊、收藏:

如何查看Python函數的源代碼:

inspect庫

inspect模塊用于收集python對象的信息,可以獲取類或者函數的參數信息,源碼,解析堆棧,對對象進行類型檢查等

使用方法:

import tensorflow as tf import inspect##查看文檔定義 inspect.getdoc(tf.compat.v1.constant) #tensorflow 2.0版本 insprct.getdoc(tf.constant) #tensorflow < 2.0#查看源程序路徑 inpect.getsourcefile(tf.compat.v1.constant)

輸出結果如下所示:

另外,python還提供了一些底層的函數來查看函數內容:dir(function), help(function), function.__file__, python官網。但是這些函數在查看tensorflow相關函數時不是特別的有效。

另外比較簡單的一種方法是在pycharm中選中一個函數,然后按F4,就可以直接定位tensorflow中的函數了。

如何查看tensorflow底層代碼實現(c,c++):

tensorflow中op的實現基本上都是有底層的一些算法程序,這樣可以充分發揮c,c++的計算效率以及python簡單的優勢,一般在tensorflow中定義新的op需要下面的步驟:

1. 定義op接口并注冊到tensorflow中,

2. 注冊op實現,調用宏REGISTER_KERNEL_BUILDER,如下面的形式:

因此,對于一般的op,在tensorflow源代碼中搜索REGISTER_OP("OpName")REGISTER_KERNEL_BUILDER(Name("OpName")基本上就可以精確定位到這個op的接口定義和具體實現了。

另外一種方法可以參照博客https://blog.csdn.net/yolan6824/article/details/82620521所示,通過寫一些腳本來進行實現,截圖如下:

import os import sysfindCount = 0 findId = "bidirectional_dynamic_rnn" findDir = "C:/Users/dell/Anaconda3/envs/tensorflow1/Lib" resultDir = "" #自己寫一個目錄 resultFile = os.path.join(resultDir,"bilstm.txt")def writeResultAndPrint(fullPath):file = open(resultFile,'a')file.write(fullPath)file.write("\n")print "write ok!\n"file.close()def findKey(findId,fullPath):file = open(fullPath,'r')content = file.read()file.close()isExist = content.find(findId)if isExist > 0:global findCountfindCount = findCount + 1writeResultAndPrint(fullPath)def findFiles():clean()for dirPath,dirNames,fileNames in os.walk(findDir):for file in fileNames:fullPath = os.path.join(dirPath,file)findKey(findId,fullPath)print "has the string!!:" + str(findCount)def clean():if os.path.exists(resultFile):os.remove(resultFile)if __name__ == '__main__': # a = sys.argv[1:] # findId += a[0] # findDir += a[1] # resultDir += a[2]findFiles()

酌情使用!!!

參考文獻:

https://blog.csdn.net/yolan6824/article/details/82620521

總結

以上是生活随笔為你收集整理的如何查看tensorflow源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。