tensorflow API使用记录

tensorflow API使用记录

文章目录

0. 常用函数

  • tf.train.list_variables(ckpt_dir_or_file) Returns list of all variables in the checkpoint

1. tf.nn.bias_add

tf.nn.bias_add(value, bias, name = None),把bias添加到value上。其中bias必须为一维的,若value的维度大于1则为广播相加。具体来说,value最后一维的维度必须要和bias的维度一致才可以。

import tensorflow as tf a=tf.constant([[[1,1],[2,2],[3,3]]],dtype=tf.float32) b=tf.constant([1,-1],dtype=tf.float32) c=tf.constant([1],dtype=tf.float32) with tf.Session() as sess: print('bias_add:') print(a.shape) print(b.shape) print(sess.run(tf.nn.bias_add(a, b))) #执行下面语句错误 #print(sess.run(tf.nn.bias_add(a, c))) 

2. tf.tensordot

tf.tensordot(a, b, axis),axis=0的时候,数据的维度就是拼接,如下所示:

a = tf.constant([1, 2, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], shape=[2,3,4]) print(a.shape) b = tf.constant([1,1,1,1,5,6,7,8,9,10,11,12], shape=[4,3]) print(b.shape) c = tf.tensordot(a, b, axes=0) print(c.shape) with tf.Session(): print(a.eval()) print(b.eval()) print(c.eval()) 

相关shape的结果如下所示:

(2, 3, 4) (4, 3) (2, 3, 4, 4, 3) 

axis = 1的时候,是矩阵的乘法,这里的乘法是一种乘法的扩展版本。也就是广播+矩阵乘法的形式。如果不加广播,这样写就是错的,如下所示:

a = tf.constant([1, 2, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], shape=[2,3,4]) print(a.shape) b = tf.constant([1,1,1,1,5,6,7,8,9,10,11,12], shape=[4,3]) print(b.shape) c = tf.matmul(a, b) #该行会报错,因为多维张量的乘法,前面的维度必须相同,然后是最后两维对应的矩阵相乘 print(c.shape) with tf.Session(): print(a.eval()) print(b.eval()) print(c.eval()) 

而使用tensordot就不会报错,具体代码如下所示:

a = tf.constant([1, 2, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], shape=[2,3,4]) print(a.shape) b = tf.constant([1,1,1,1,5,6,7,8,9,10,11,12], shape=[4,3]) print(b.shape) c = tf.tensordot(a, b, axes = 1) print(c.shape) with tf.Session(): print(a.eval()) print(b.eval()) print(c.eval()) 

相关shape的结果如下所示:

(2, 3, 4) (4, 3) (2, 3, 3) 

假设三维数据和一维数据进行tensordot,正确的写法之一是

a = tf.constant([1, 2, 1, 1, 1, 1, 1, 1, 1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], shape=[3, 2, 4]) print(a.shape) b = tf.constant([1, 1, 1, 1], shape=[4]) print(b.shape) c = tf.tensordot(a, b, axes=1) print(c.shape) with tf.Session(): print(a.eval()) print(b.eval()) print(c.eval()) 

这种情况下会对b进行扩展,结果就是[4,1],然后a和b进行matmul,结果为[3,2,1],再进行sequeeze最后一维,结果是[3,2]。其中这里的矩阵表示的都是shape。

可参考链接:https://www.machenxiao.com/blog/tensordot

3. 交叉熵的不同API

  • tf.keras.losses.BinaryCrossentropy(y_true, y_pred, from_logits=False, label_smoothing=0)
  • categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1),需要注意的是y_true是one-hot表示,而y_pred表示了每种类别对应的概率。
  • sparse_categorical_crossentropy(y_true, y_pred, from_logits=False, axis=-1),sparse相比于上式而言,y_true的输入是整数值,而不是one-hot表示。

参考链接:https://zhuanlan.zhihu.com/p/112314557

Read more

最新电子电气架构(EEA)调研-3

而新一代的强实时性、高确定性,以及满足CAP定理的同步分布式协同技术(SDCT),可以实现替代TSN、DDS的应用,且此技术已经在无人车辆得到验证,同时其低成本学习曲线、无复杂二次开发工作,将开发人员的劳动强度、学习曲线极大降低,使开发人员更多的去完成算法、执行器功能完善。 五、各大车厂的EEA 我们调研策略是从公开信息中获得各大车厂的EEA信息,并在如下中进行展示。 我们集中了华为、特斯拉、大众、蔚来、小鹏、理想、东风(岚图)等有代表领先性的车辆电子电气架构厂商。        1、华为 图12 华为的CCA电子电气架构              (1)华为“计算+通信”CC架构的三个平台                         1)MDC智能驾驶平台;                         2)CDC智能座舱平台                         3)VDC整车控制平台。        联接指的是华为智能网联解决方案,解决车内、车外网络高速连接问题,云服务则是基于云计算提供的服务,如在线车主服务、娱乐和OTA等。 华

By Ne0inhk
Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 文章目录 * Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 * Apache IoTDB 核心特性与价值 * Apache IoTDB 监控面板完整部署方案 * 安装步骤 * 步骤一:IoTDB开启监控指标采集 * 步骤二:安装、配置Prometheus * 步骤三:安装grafana并配置数据源 * 步骤四:导入IoTDB Grafana看板 * TimechoDB(基于 Apache IoTDB)增强特性 * 总结与应用场景建议 Apache IoTDB 核心特性与价值 Apache IoTDB 专为物联网场景打造的高性能轻量级时序数据库,以 “设备 - 测点” 原生数据模型贴合物理设备与传感器关系,通过高压缩算法、百万级并发写入能力和毫秒级查询响应优化海量时序数据存储成本与处理效率,同时支持边缘轻量部署、

By Ne0inhk
SQL Server 2019安装教程(超详细图文)

SQL Server 2019安装教程(超详细图文)

SQL Server 介绍) SQL Server 是由 微软(Microsoft) 开发的一款 关系型数据库管理系统(RDBMS),支持结构化查询语言(SQL)进行数据存储、管理和分析。自1989年首次发布以来,SQL Server 已成为企业级数据管理的核心解决方案,广泛应用于金融、电商、ERP、CRM 等业务系统。它提供高可用性、安全性、事务处理(ACID)和商业智能(BI)支持,并支持 Windows 和 Linux 跨平台部署。 一、获取 SQL Server 2019 安装包 1. 官方下载方式 前往微软官网注册账号后,即可下载 SQL Server Developer 版本(

By Ne0inhk