zoukankan      html  css  js  c++  java
  • 14:2D函数优化实例

    1:2D函数Himmelblau

    (1)用3D曲线表示2D函数

    4个最小解

     

     (2)pytorch中寻找最小解

    第一步:先将2D函数Himmelblau用pytorch实现,并且将其进行可视化

     【注】x,y分别是一个点的x坐标和y坐标。np.meshgrid(x,y)可以实现将x,y的范围传入其中。X和Y两张map分别存储了x,y,其形状分别为shape为【120,120】的tensor,两个map相同处拼接x,y构成一个点坐标(x,y)。

    X,Y即为点的横坐标和纵坐标。

    第二步:

     

     [注]torch.optim优化算法之optim.Adam()详细参考https://blog.csdn.net/kgzhang/article/details/77479737

    上图调用该优化算法之后通过step()函数可以实现如下步骤对进行更新:

     【注本人也不太理解】optimizer.zero_grad()梯度归零原因:因为训练的过程通常使用mini-batch方法,所以如果不将梯度清零的话,梯度会与上一个batch的数据相关,因此该函数要写在反向传播和梯度下降之前。

    [注]pred.backward()是求解x,y的梯度。即:预测试pred对x,y进行微分,对x,y进行优化,得到最小pred.

  • 相关阅读:
    安卓学习12
    安卓学习11
    安卓学习10
    安卓学习9
    Python3之json&pickle模块
    Mysql之基础sql语句
    Django模型层之单表操作
    创建Django项目与应用的两个命令
    windows命令行切换目录
    Django视图层之请求对象(request)和响应对象(HttpResponse)
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/15063746.html
Copyright © 2011-2022 走看看