TensorFlow 多元函数的极值实例

flyfish

python实现

设函数 的某个邻域内有定义,对于该邻域内异于的点,如果都适合不等式

则称函数在点有极大值。

如果都适合不等式

则称函数在点有极小值.

极大值、极小值统称为极值。使函数取得极值的点称为极值点。

有极小值的例子

函数

在点(0,0)处有极小值。因为对于点 (0,0)的任一邻域内异于(0,0)的点,函数值都为正,而在点(0,0)处的函数值为零。从几何上看这是显然的,因为点(0,0,0)是开口朝上的椭圆抛物面

的顶点。

代码

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-10, 10, 0.1)
Y = np.arange(-10, 10, 0.1)
X, Y = np.meshgrid(X, Y)
Z = (3*X**2 + 4*Y**2)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1)
plt.show()

有极大值的例子

函数

在点(0,0)处有极大值。因为在点(0,0)处函数值为零,而对于点(0,0)的任一邻域内异于(0,0)的点,函数值都为负,点(0,0,0)是位于xOy平面下方的锥面$$z=-\sqrt{x^2+y^2}的顶点。

代码

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-10, 10, 0.1)
Y = np.arange(-10, 10, 0.1)
X, Y = np.meshgrid(X, Y)
Z = np.sqrt(X**2 + Y**2)*(-1)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1)
plt.show()

没有极大值也没有极小值的例子

函数z=xy在点(0,0)处既不取得极大值也不取得极小值。因为在点(0,0)处的函数值为零,而在点(0,0)的任一邻域内,总有使函数值为正的点,也有使函

数值为负的点。

像一个马鞍的图形

代码

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-10, 10, 0.1)
Y = np.arange(-10, 10, 0.1)
X, Y = np.meshgrid(X, Y)
Z = X*Y
ax.plot_surface(X, Y, Z, rstride=1, cstride=1)
plt.show()

以上这篇TensorFlow 多元函数的极值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于Tensorflow高阶读写教程

    前言 tensorflow提供了多种读写方式,我们最常见的就是使用tf.placeholder()这种方法,使用这个方法需要我们提前处理好数据格式,不过这种处理方法也有缺陷:不便于存储和不利于分布式处理,因此,TensorFlow提供了一个标准的读写格式和存储协议,不仅如此,TensorFlow也提供了基于多线程队列的读取方式,高效而简洁,读取速度也更快,据一个博主说速度能提高10倍,相当的诱人.[下面的实验均是在tensorflow1.0的环境下进行] tensorflow的example解析

  • TensorFlow损失函数专题详解

    一.分类问题损失函数--交叉熵(crossentropy) 交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数.给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离: 我们可以通过Softmax回归将神经网络前向传播得到的结果变成交叉熵要求的概率分布得分.在TensorFlow中,Softmax回归的参数被去掉了,只是一个额外的处理层,将神经网络的输出变成一个概率分布. 代码实现: import tensorflow as tf y_ = tf.constant([[1.

  • 浅谈tensorflow之内存暴涨问题

    在用tensorflow实现一些模型的时候,有时候我们在运行程序的时候,会发现程序占用的内存在不断增长.最后内存溢出,程序被kill掉了. 这个问题,其实有两个可能性.一个是比较常见,同时也是很难发现的.这个问题的解决,需要我们知道tensorflow在构图的时候,是没有所谓的临时变量的,只要有operator.那么tensorflow就会在构建的图中增加这个operator所代表的节点.所以,在运行程序的过程中,内存不断增长的原因就是在模型训练迭代的过程中,tensorflow一直在帮你增加图

  • 基于Tensorflow:CPU性能分析

    iostat iostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式: 1)显示所有设备负载情况 指令: iostat -m 2 5 cpu属性值说明: %user:CPU处在用户模式下的时间百分比. %nice:CPU处在带NICE值的用户模式下的时间百分比. %system:CPU处在系统模式下的时间百分比. %iowait:CPU等待输入输出完成时间的百分比. %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比. %idle:CPU空闲时间百分比. 备

  • TensorFlow 多元函数的极值实例

    flyfish python实现 设函数 的某个邻域内有定义,对于该邻域内异于的点,如果都适合不等式 则称函数在点有极大值. 如果都适合不等式 则称函数在点有极小值. 极大值.极小值统称为极值.使函数取得极值的点称为极值点. 有极小值的例子 函数 在点(0,0)处有极小值.因为对于点 (0,0)的任一邻域内异于(0,0)的点,函数值都为正,而在点(0,0)处的函数值为零.从几何上看这是显然的,因为点(0,0,0)是开口朝上的椭圆抛物面 的顶点. 代码 from matplotlib import

  • tensorflow 模型权重导出实例

    tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe.Keras等). 好在tensorflow提供了相关函数 tf.train.NewCheckpointReader 可以对ckpt文件进行权重查看,因此可以通过该函数进行数据导出. import tensorflow as tf import h5py cpktLogFileName = r'./checkpoi

  • Tensorflow限制CPU个数实例

    安装 这里使用 Pip 来安装 Tensorflow CPU 版 $ sudo pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl 安装完成后运行库中自带的手写识别例子来检查安装是否成功 $ cd /usr/lib/python2.7/site-packages/tensorflow/models/image/mnist $ pyth

  • TensorFlow tensor的拼接实例

    TensorFlow提供两种类型的拼接: tf.concat(values, axis, name='concat'):按照指定的已经存在的轴进行拼接 tf.stack(values, axis=0, name='stack'):按照指定的新建的轴进行拼接 t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10, 11, 12]] tf.concat([t1, t2], 0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [

  • jupyter notebook tensorflow打印device信息实例

    juypter notebook中直接使用log_device_placement=True打印不出来device信息 # Creates a graph. with tf.device('/device:CPU:0'): a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name

  • 详解tensorflow实现迁移学习实例

    本文主要是总结利用tensorflow实现迁移学习的基本步骤. 所谓迁移学习,就是将上一个问题上训练好的模型通过简单的调整使其适用于一个新的问题.比如说,我们可以保留训练好的Inception-v3模型中所有的参数,只替换最后一层全连接层.在最后一层全连接层之前的网络称之为瓶颈层(bottleneck). 持久化 首先需要简单介绍下tensorflow中的持久化:在tensorflow中提供了一个非常简单的API来保存和还原一个神经网络模型,这个API就是tf.train.Saver类.当采用该

  • tensorflow学习笔记之mnist的卷积神经网络实例

    mnist的卷积神经网络例子和上一篇博文中的神经网络例子大部分是相同的.但是CNN层数要多一些,网络模型需要自己来构建. 程序比较复杂,我就分成几个部分来叙述. 首先,下载并加载数据: import tensorflow as tf import tensorflow.examples.tutorials.mnist.input_data as input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=Tru

  • Tensorflow 同时载入多个模型的实例讲解

    有时我们希望在一个python的文件空间同时载入多个模型,例如 我们建立了10个CNN模型,然后我们又写了一个预测类Predict,这个类会从已经保存好的模型restore恢复相应的图结构以及模型参数.然后我们会创建10个Predict的对象Instance,每个Instance负责一个模型的预测. Predict的核心为: class Predict: def __init__(self....): 创建sess 创建恢复器tf.train.Saver 从恢复点恢复参数:tf.train.Sa

  • tensorflow saver 保存和恢复指定 tensor的实例讲解

    在实践中经常会遇到这样的情况: 1.用简单的模型预训练参数 2.把预训练的参数导入复杂的模型后训练复杂的模型 这时就产生一个问题: 如何加载预训练的参数. 下面就是我的总结. 为了方便说明,做一个假设:简单的模型只有一个卷基层,复杂模型有两个. 卷积层的实现代码如下: import tensorflow as tf # PS:本篇的重担是saver,不过为了方便阅读还是说明下参数 # 参数 # name:创建卷基层的代码这么多,必须要函数化,而为了防止变量冲突就需要用tf.name_scope

  • 在python下使用tensorflow判断是否存在文件夹的实例

    判读是否存在文件夹 import tensorflow as tf import os folder = './floder' if not tf.gfile.Exists(folder): #若文件夹不存在,则自动创建文件夹 tf.gfile.MakeDirs(folder) 若存在删除文件夹下所有文件 if tf.gfile.Exists(folder): #返回一个list for file in (tf.gfile.ListDirectory(folder)): #添加绝对路径,并删除文

随机推荐