SSD网络参数进行简单的分析程序
来源:互联网 发布:淘宝周六福旗舰店真假 编辑:程序博客网 时间:2024/06/05 07:51
由于要在FPGA上实现SSD,加上神经网络的硬件实现和软件上的实现有很大差距,所以很有必要对网络本身的权重和参数进行分析,所以就写了个简单的程序,看了一下参数的分布情况
代码如下
import osimport pathimport numpy as npimport matplotlib.pyplot as pltfrom tensorflow.python import pywrap_tensorflowcheckpoint_path='./checkpoints/VGG_VOC0712_SSD_300x300_ft_iter_120000.ckpt/VGG_VOC0712_SSD_300x300_ft_iter_120000.ckpt'# print(path.getcwdu())# print(checkpoint_path)hist_scale=0.05#read data from checkpoint filereader=pywrap_tensorflow.NewCheckpointReader(checkpoint_path)var_to_shape_map=reader.get_variable_to_shape_map()data_print=np.array([])for key in var_to_shape_map: print('tensor_name',key) ckpt_data=np.array(reader.get_tensor(key))#cast list to np arrary ckpt_data=ckpt_data.flatten()#flatten list data_print=np.append(data_print,ckpt_data,axis=0)# data_print=data_print[np.argsort(data_print)]#sort is unnessarytotal_num=data_print.shapeprint('total_number is %s,max_value=%s,min_value=%s,mean_value=%.3f'%(total_num,np.max(data_print),np.min(data_print),np.mean(data_print)))data_print=data_print[data_print<hist_scale]data_print=data_print[data_print>-hist_scale]out_number=int(total_num[0]-data_print.shape[0])ratio=float(out_number)/float(total_num[0])*100print('the number of out of hist is %s ,ratio %.3f%%'%(out_number,ratio))#number of out of histfig, ax0 = plt.subplots()bar=np.arange(np.min(data_print),np.max(data_print),0.0005)# print(bar)ax0.hist(data_print, bar, histtype='bar', facecolor='b')fig.tight_layout()plt.show()
其中主要的工作还是将各个参数从TensorFlow的ckpt文件中读出,然后再再对读出的数据进行分析,用图表表示出来,结果如下
可见权重和偏置的数据基本集中在[-0.05,0.05]之间,占到了数据量的99.5%以上。
阅读全文
0 0
- SSD网络参数进行简单的分析程序
- 简单的网络数据包分析小程序
- 最简单的使用程序进行网络链接测试
- 一个简单的网络验证程序的分析
- SSD 简单的选择重点
- 使用networkx导出关系网络并用gephi进行简单分析
- Retrofit2+RxAndroid2进行简单的网络请求
- 简单的词法分析程序
- ssd微调VGG网络出现的错误
- Python网络编程 3.1 由简单的TCP服务器、客户端程序分析相关方法
- 一个简单的C#命令行参数程序
- java程序的参数传递分析
- tensorflow保存网络参数 使用训练好的网络参数进行数据的预测
- 简单的网络聊天程序,MFC实现
- 简单的Linux客户-服务器网络程序
- 一个简单的接收网络数据程序
- 一个简单的 UDP网络程序
- LINUX网络编程,简单的聊天程序
- 在docker容器中运行或一键运行GourdScanV2
- c++ 输入输出
- c++ auto类型说明符
- 《详解OkHttp》视频课程介绍
- 命名规则
- SSD网络参数进行简单的分析程序
- [POJ 2001] Shortest Prefixes
- [LeetCode] Best Time to Buy and Sell Stock
- Usaco 奶牛抗议(树状数组+DP+离散化)
- [LeetCode] Binary Tree Inorder Traversal
- oracle中的游标,例外,存储过程,存储函数和触发器
- 9.8训练日志
- [LeetCode] Balanced Binary Tree
- [LeetCode] Climbing Stairs