博客
关于我
论如何找tensorflow的源码
阅读量:269 次
发布时间:2019-03-01

本文共 1710 字,大约阅读时间需要 5 分钟。

以前每次看博客总有大神贴出一大堆源码来解析,今天突然就想写一个关于怎么找tensorflow源码的文章,这里的源码我觉得是来源于调用的库,而调用的库肯定是在本地有存档,所以,找源码就是找tensorflow中的目录~

论找函数源码的作用的话,我觉得首先就是源码中的注释很清晰,可以帮助搞懂函数参数的意义

比如我要找实现rnn中一个函数的源码

进入安装tensorflow的路径,如果对tensorflow设置了环境,anaconda里会有一个envs的文件夹,

1. 比如要找dynamic_rnn的实现源码

进入这个文件夹以后,有这些文件

打开rnn.py,搜索dynamic_rnn就有下面的这个,解释了函数的参数

2.找tf.contrib.rnn.BasicLSTMCell的实现源码

在rnn_cell_impl.py文件中,路径同上

 

分割线

————————————————————————————————————————————————————

最近看了很多大神的博客和知乎,哇,深觉分享真是一种美德。

之前手动找源码,实在找的太痛苦,主要痛苦在于不知道那个函数的实现在哪个文件当中,搞得我想要ctrl+F都不行,因此从网上找了一点代码,又自己加工了一小下,成功成为了找源码的好工具。

#或许还有其他更简便的方法我不知道的,请别见怪-_-

import osimport sysfindCount = 0findId = "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 findCount        findCount = findCount + 1        writeResultAndPrint(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()

findId就是要找的函数,findDir是你预计文件会在的目录,resultDir是结果存放的目录。

成功的截图:

虽然仍然是个笨方法,但还是比手动找简单多了,劳动工具解放生产力-_-

你可能感兴趣的文章
python之random模块
查看>>
python之面向对象编程
查看>>
Docker Compose 搭建 Redis Cluster 集群环境
查看>>
python之字典类型内置方法
查看>>
python之集合类型内置方法
查看>>
编程与编程语言分类
查看>>
python之三元表达式、生成式、生成器表达式
查看>>
python之pickle模块
查看>>
IDEA-运行无法读取webapp下静态文件
查看>>
【高速接口-RapidIO】5、Xilinx RapidIO核例子工程源码分析
查看>>
设计模式(二)—工厂模式(简单工厂模式)(附代码)
查看>>
Cube-SLAM编译遇到的问题
查看>>
视觉SLAML1作业
查看>>
【转载】常见HTTP状态码
查看>>
一只蒟蒻的计算机网络学习【一】
查看>>
【一只蒟蒻的刷题历程】 【PAT】 A1070 月饼 (贪心)
查看>>
win10连接上wifi显示无internet,并且wlan的属性都点不了,可尝试的解决方法(亲测有用!!!)
查看>>
【一只蒟蒻的刷题历程】 【HDU-1276】 士兵队列训练问题
查看>>
【 UVA - 572 】 Oil Deposits (DFS水题)
查看>>
【 UVA - 673 】Parentheses Balance 平衡的括号 (非常容易理解!!)
查看>>