TensorFlow隐藏操作探索(张量操作和定制模型算法)

 更新时间:2023年11月07日 11:18:29   作者:炼丹侠  
这篇文章主要为大家介绍了TensorFlow隐藏操作探索(张量操作和定制模型算法),有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1.张量和操作

tensorflow对张量的操作实际上和numpy差不多,不够有所差距,numpy的数据可以随时被修改,但是tensorflow的数据要分情况。

(1).使用tf.Constant()

a = tf.Constant([[1,2,3],[4,5,6]])

这个矩阵就是2*3的矩阵,但是它无法被修改,只能读取。
除了不能修改,其实和numpy的使用方法
比如查看它的大小也可以用:a.shape
索引方式也一样,这里不做过得描述

(2).tensorflow提供的数据操作函数

比如加法: a + 10 可以使用函数 tf.add(a, 10);

矩阵的乘法为tf.matmul(),它提供的函数和numpy都差不多,但是有些不一样

比如求和.tf.reduce_sum(),求均值为tf.reduce_mean(),求最大值tf.reduce_max();

numpy也可以用于tensorflow中,转换为张量。

(3)类型转换

tensorflow中有个很麻烦的东西,整形+浮点型会失败,float32和float64相加也会失败,它不会自动执行类型转换,需要你手动操作。

tf.cast()可以用来进行转换,比如把a转为float64类型的
tf.cast(a, tf.float64)

(4).变量

tf.Constant无法被改变,固定好深度学习的参数后,可以使用这个类型的变量,但是如果需要对它进行训练,则必须要使用tf.Variable

我们对tf.Variable的修改也需要使用特定的函数assign

a[0,0].assign(10)

这样a的第一个值就变为了10,这个就相当于a[0,0] = 10

麻烦就是这个啦,必须通过相应的函数来操作;

(5).其他数据结构

tensorflow还有其他数据结构,比如稀疏张量(tf.SparseTensor),张量数组(tf.TensorArrray),不规则张量(tf.RaggedTensor),字符串张量(tf.string)等等

2.定制模型和算法

(1)自定义损失函数

比如自定义一个Huber
def huber_fn(y_true, y_pred):`

error = tf.abs(y_true - y_pred);
    is_small_error = tf.abs(error) < 1#门限设置为1
    squared_loss = tf.abs(error)-0.5
    return tf.where(is_small_error, squared_loss, linear_loss)

可以在Keras模型中使用这个函数

model.compile(loss=huber_fn, opitimizer= 'adam');

(2)保存和加载自定义组件的模型

keras会保存函数的名字,每次加载的适合需要提供一个字典,将函数名称映射到实际函数。一般而言,当加载包含自定义对象的模式时,需要将名称映射到对象。

model = keras.models.load_model("model.h5", custom_objects = {'huber_fn':huber_fn})

如果需要更为灵活的函数,设定上面函数的阈值,不仅仅等于1

def more_freedom_huber(limit = 1.0):

def huber_fn(y_true, y_pred):
            error = tf.abs(y_true - y_pred);
            is_small_error = tf.abs(error) < 1#门限设置为1
            squared_loss = tf.abs(error)-0.5
            return tf.where(is_small_error, squared_loss, linear_loss)
    return huber_fn
    model = keras.models.load_model("model.h5", custom_objects = {'huber_fn':more_freedom_huber(2.0)})

还可以通过继承keras.losses.Loss类的子类,然后实现get_config()方法来解决问题

比如自定义激活函数,初始化方法,正则化和约束。

如果函数需要和模型一起保存,必须继承相应的对象,比如keras.regularizers.Regularizer

以上就是TensorFlow隐藏操作探索(张量操作和定制模型算法)的详细内容,更多关于TensorFlow张量定制模型算法的资料请关注脚本之家其它相关文章!

相关文章

  • Python自动解析markdown中的图片并保存

    Python自动解析markdown中的图片并保存

    这篇文章主要为大家详细介绍了如何利用Python实现自动解析markdown中的图片并保存,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-12-12
  • Python面向对象实现方法总结

    Python面向对象实现方法总结

    这篇文章主要介绍了Python面向对象实现方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 使用 Python 进行 Word 邮件合并的实现

    使用 Python 进行 Word 邮件合并的实现

    本文主要介绍了Python 进行 Word 邮件合并的实现,通过邮件合并功能,可以将模板文档与数据源结合,自动生成大量格式统一但内容各异的文档,感兴趣的可以了解一下
    2026-05-05
  • 浅谈Python数据类型判断及列表脚本操作

    浅谈Python数据类型判断及列表脚本操作

    下面小编就为大家带来一篇浅谈Python数据类型判断及列表脚本操作。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 详解TensorFlow在windows上安装与简单示例

    详解TensorFlow在windows上安装与简单示例

    这篇文章主要介绍了详解TensorFlow在windows上安装与简单示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Python中绘制折线图的全面指南(非常详细!)

    Python中绘制折线图的全面指南(非常详细!)

    对于数据而言一般都会使用折线图反映数据背后的趋势,下面这篇文章主要给大家介绍了关于Python中绘制折线的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • Django组件之cookie与session的使用方法

    Django组件之cookie与session的使用方法

    这篇文章主要介绍了Django组件之cookie与session的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • python使用pil库实现图片合成实例代码

    python使用pil库实现图片合成实例代码

    这篇文章主要介绍了python PIL实现图片合成实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python下使用Psyco模块优化运行速度

    Python下使用Psyco模块优化运行速度

    这篇文章主要介绍了Python下使用Psyco模块优化运行速度,Psyco模块可以使你的Python程序运行的像C语言一样快,本文给出了多个代码示例,并讲解了Psyco的安装和使用方法,需要的朋友可以参考下
    2015-04-04
  • Python Django框架模板渲染功能示例

    Python Django框架模板渲染功能示例

    这篇文章主要介绍了Python Django框架模板渲染功能,结合实例形式分析了Django框架模板渲染相关的配置、视图调用、变量赋值等相关操作技巧,需要的朋友可以参考下
    2019-11-11

最新评论