python
ming.zhang
爱科技,爱生活
展开
-
梯度下降法拟合直线
给定300个样本点(x, y)。拟合直线:设直线方程为y = w*x + b其中:x,y是给定的样本点,作为训练集。w和b是待拟合的参数。改问题可以转化为,优化函数 f(w, b) = y - w*x - b使用平方损失,转化为优化:f(w, b) = (y - w*x -b)^2求w的梯度为: grad_w = -x * 2(y - w*x -b)求b的梯度为:grad_b = -1 * 2(y - w*x -b)再使用:w = w - lr * grad_wb = b原创 2022-04-21 11:29:14 · 1822 阅读 · 0 评论 -
梯度下降法解方程,求函数极值
设要求方程的值:我们采用mse(误差平方和)作为优化函数:上面的问题即可转化为求:的最小值了求该公式的导数/梯度为:我们随机给x初始化一个值,然后使用导数公式来更新x的值,其中lr为学习率/步长:若设置初始值x=10,则更新代码为:x = 10lr = 0.001for i in range(1000): grad = 2 * (x**2 - 5) * (2 * x) x = x - lr * grad print("iteration: {}, gra原创 2021-03-16 20:16:11 · 2257 阅读 · 0 评论 -
python的matplot库画3D曲面图像
#coding:utf-8import numpy as npfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltplt.style.use('ggplot')fig = plt.figure()ax = Axes3D(fig)x, y, z = [], [], []# not used...原创 2018-11-18 12:13:50 · 4694 阅读 · 0 评论 -
python/cv2对长方形图像进行等比例缩放及对周围常数值(0)填充zero padding
#coding:utf-8import osimport cv2import globimport numpy as npdef mkdir(path): if not os.path.exists(path): os.mkdir(path)def process_image(img): size = img.shape h, w = si...原创 2018-12-08 00:28:45 · 10286 阅读 · 7 评论 -
使用python的matplotlib.pyplot画图
#coding:utf-8import numpy as npimport matplotlib.pyplot as pltx = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,45]y = [5.4, 4.5, 4.32, 4.25, 4.25, 4.18, 4.16,...原创 2018-12-24 11:24:48 · 494 阅读 · 0 评论 -
使用python的json包保存加载json
import json# save jsonf = open('aa.json', 'w')data1 = {'name':'john', "age":12}data1["num"] = 1data2 = {'name':'merry', "age":13}data = [data1, data2]print(data)json.dump(data, f, ensure_asc...原创 2018-12-25 15:11:48 · 287 阅读 · 0 评论 -
python保存加载.mat文件
#coding:utf-8import scipy.io as sio# save .matname = 'aaa.mat'x = [[1,1,1,2], [1,1,1,3], [1,1,1,4]]y = [5,6,7,8]sio.savemat(name, {'x': x, 'y': y})# load .matname = 'aaa.mat'data = sio.lo...原创 2019-01-02 11:58:54 · 5135 阅读 · 0 评论 -
目标检测数据增强:翻转、旋转90、随机裁剪、对比度等
在目标检测中,常用到数据增强。下面为集中增强方式。每个函数的输入为图像及box框,返回变换后的图像及box框。这里的demo使用voc格式的.xml标注的数据。使用readAnnotations函数读取xml。返回box框,如box: [[404, 30, 500, 374, 222], [386, 83, 479, 374, 222], [272, 65, 415, 374, 222], ...原创 2019-03-03 14:46:17 · 13268 阅读 · 10 评论 -
【matplotlib】确定某个点是否在4边形内
如何确定某个点的坐标是否在某个4边形范围内的问题。在这里使用一个非常简单的方法。matplotlib.path# -*- coding:utf-8 -*-from matplotlib.path import Pathimport numpy as npimport mathdef cos_dist(a, b): if len(a) != len(b): ...原创 2019-04-19 11:39:07 · 913 阅读 · 0 评论