热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

tf损失函数_在TensorF中定义成本/损失函数

我正在研究一个图网络问题,我想利用TensorFlow的能力。在但我在正确实现TensorFlow中的成本函数时遇到了困难。在我的成本函数如下:sum_

我正在研究一个图网络问题,我想利用TensorFlow的能力。在

但我在正确实现TensorFlow中的成本函数时遇到了困难。在

我的成本函数如下:sum_i>j A_ij*log(pi_ij)+(1-A_ij)*log(1-pi_ij)

其中:pi_ij = sigmoid(-|z_i-z_j|+beta)

| |是欧几里得距离,pi_ij表示i和{}之间连接的机会,A_ij = 1如果链接和0如果不是(在一个简单的邻接矩阵中),两者都是相同大小的矩阵。我已经用python和一个简单的SGD方法手动解决了这个优化问题。我计算成本函数如下:

^{pr2}$

在TensorFlow中如何定义这样一个损失函数?有可能吗?任何帮助或推动在正确的方向将不胜感激。在

编辑

我在张量流中记下了:tfY = tf.placeholder(shape=(15, 15), dtype=tf.float32)

with tf.variable_scope('test'):

shape = [] # Shape [] means that we're using a scalar variable

B = tf.Variable(tf.zeros(shape))

tfZ = tf.Variable(tf.zeros(shape=(15,2)))

def loss():

r = tf.reduce_sum(tfZ*tfZ, 1)

r = tf.reshape(r, [-1, 1])

D = tf.sqrt(r - 2*tf.matmul(tfZ, tf.transpose(tfZ)) + tf.transpose(r))

return tf.reduce_sum(tfY*tf.log(tf.sigmoid(D+B))+(1-tfY)*tf.log(1-tf.sigmoid(D+B)))

LOSS = loss()

GRADIENT = tf.gradients(LOSS, [B, tfZ])

sess = tf.Session()

sess.run(tf.global_variables_initializer())

tot_loss = sess.run(LOSS, feed_dict={tfZ: Z,

tfY: Y})

print(tot_loss)

loss_grad = sess.run(GRADIENT, feed_dict={tfZ: Z,

tfY: Y})

print(loss_grad)

打印以下内容:-487.9079

[-152.56271, array([[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan],

[nan, nan]], dtype=float32)]

我的beta值返回一个值,将其乘以学习率可以提高分数,但我的tfZ向量只返回nans,我显然做错了什么,如果有人能发现我做错了什么,我将不胜感激。在



推荐阅读
  • ConsumerConfiguration在kafka0.9使用JavaConsumer替代了老版本的scalaConsumer。新版的配置如下:bootstrap. ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 一、tf.transpose函数的用法tf.transpose(input,[dimension_1,dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同 ... [详细]
  • ☞░前往老猿Python博客https:blog.csdn.netLaoYuanPython░一、引言在写该文之前,老猿就图像的一些运算已经单独边学边发了࿰ ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
author-avatar
酷的带_201
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有