<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hezhenpp的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hezhenpp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hezhenpp]]></copyright><item><title><![CDATA[神经网络 炼丹tricks]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/117410815</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/117410815</guid><author>hezhenpp</author><pubDate>Mon, 31 May 2021 10:37:16 +0800</pubDate><description><![CDATA[1. 寻找合适的学习率(learning rate)
学习率是一个非常非常重要的超参数，这个参数呢，面对不同规模、不同batch-size、不同优化方式、不同数据集，其最合适的值都是不确定的，我们无法光凭经验来准确地确定lr的值，我们唯一可以做的，就是在训练中不断寻找最合适当前状态的学习率。比如下图利用fast.ai中的lr_find()函数寻找合适的学习率，根据下方的学习率-损失曲线得到此时合适的学习率为1e-2。

推荐一篇fast.ai首席设计师 「Sylvain Gugger」 的一篇博客：How ]]></description><category></category></item><item><title><![CDATA[梯度消失 梯度爆炸]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/109090284</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/109090284</guid><author>hezhenpp</author><pubDate>Thu, 15 Oct 2020 09:23:23 +0800</pubDate><description><![CDATA[假设我们现在需要计算一个函数f(x,y,z)=(x+y)*z，在x = -2,y = 5,z = -4时的梯度，那么首先可以做出如下所示的计算图。
将x = -2,y = 5,z = -4带入，其中，令x+y = q ,一步步计算，很容易就能得出f(-2,5,-4) = -12 。
这就是前向传播（计算图上部分绿色打印字体与蓝色手写字体),前向传播是从输入一步步向前计算输出，而反向传播则是从输出反向一点点推出输入的梯度(计算图下红色的部分)。

注：这里的反向传播假设输出端接受之前回传的梯度为1（也可以是输]]></description><category></category></item><item><title><![CDATA[数字图像空间域 频域]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108963233</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108963233</guid><author>hezhenpp</author><pubDate>Thu, 08 Oct 2020 14:57:51 +0800</pubDate><description><![CDATA[借用知乎大神Heinrich的一张图，来个感性认识：

空间域和频域
空间域：在图像处理中，时域可以理解为 空间域 或者 图像空间，处理对象为图像像元；
频域：以 空间频率 为自变量描述图像的特征,可以将一幅图像像元值在空间上的变化分解为具有不同振幅、空间频率和相位的简振函数的线性叠加，图像中各种空间频率成分的组成和分布称为 图像频谱
空间域与频域可互相转换，对图像施行 二维离散傅立叶变换 或 小波变换 ，可以将图像由空间域转换到频域；通过 对应的反变换 又可转换回空间域图像，即人可以直接识别的图像。
图像]]></description><category></category></item><item><title><![CDATA[轻量级神经网络架构综述]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108925647</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108925647</guid><author>hezhenpp</author><pubDate>Wed, 07 Oct 2020 10:09:55 +0800</pubDate><description><![CDATA[轻量级神经网络架构综述
深度神经网络已经被证明可以有效的解决图像、自然语言等不同领域的问题.同时伴随着移动互联网技术的不断发展,便携式设备得到了迅速的普及,用户提出了越来越多的需求.因此,如何设计高效、高性能的轻量级神经网络是解决问题的关键.本文详细阐述了三种构建轻量级神经网络的方法,分别是人工设计轻量级神经网络、神经网络模型压缩算法和基于神经网络架构搜索的自动化神经网络架构设计,同时简要总结和分析了每种方法的特点,并重点介绍了典型的构建轻量级神经网络的算法.最后,总结现有的方法,并给出了未来发展的前景
目]]></description><category></category></item><item><title><![CDATA[python实现队列]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108483804</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108483804</guid><author>hezhenpp</author><pubDate>Wed, 23 Sep 2020 20:30:38 +0800</pubDate><description><![CDATA[队列是项的有序结合，其中添加新项的一端称为队尾，移除项的一端称为队首。当一个元素
从队尾进入队列时，一直向队首移动，直到它成为下一个需要移除的元素为止。最近添加的元素必须在队尾等待。集合中存活时间最长的元素在队首，这种排序成为 FIFO，先进先出，也被成为先到先得。队列抽象数据类型由以下结构和操作定义。如上所述，队列被构造为在队尾添加项的有序集合，并且从队首移除。队列保持 FIFO 排序属性。 队列操作如下。
Queue() 创建一个空的新队列。 它不需要参数，并返回一个空队列。
enqueue(item)]]></description><category></category></item><item><title><![CDATA[python 实现deque]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108483865</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108483865</guid><author>hezhenpp</author><pubDate>Wed, 23 Sep 2020 20:30:21 +0800</pubDate><description><![CDATA[deque（也称为双端队列）是与队列类似的项的有序集合。它有两个端部，首部和尾部，并且
项在集合中保持不变。deque 不同的地方是添加和删除项是非限制性的。可以在前面或后面
添加新项。同样，可以从任一端移除现有项。在某种意义上，这种混合线性结构提供了单个
数据结构中的栈和队列的所有能力。
deque 抽象数据类型由以下结构和操作定义。下面给出了 deque 操作。
Deque() 创建一个空的新 deque。它不需要参数，并返回空的 deque。
addFront(item) 将一个新项添加到 deque]]></description><category></category></item><item><title><![CDATA[python 实现有序链表和无序链表]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108483920</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108483920</guid><author>hezhenpp</author><pubDate>Wed, 23 Sep 2020 20:30:02 +0800</pubDate><description><![CDATA[1.无序列表
class Node:
    def __init__(self,initdata):
        self.data = initdata
        self.next = None
    def getdata(self):
        return self.data
    def getnext(self):
        return self.next
    def setdata(self,newdata):
        self.data = new]]></description><category></category></item><item><title><![CDATA[python 实现栈]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108483750</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108483750</guid><author>hezhenpp</author><pubDate>Wed, 23 Sep 2020 20:29:34 +0800</pubDate><description><![CDATA[栈的抽象数据类型由以下结构和操作定义。栈是有序的 LIFO 。栈操作如下。
Stack() 创建一个空的新栈。 它不需要参数，并返回一个空栈。
push(item)将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。
pop() 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。
peek() 从栈返回顶部项，但不会删除它。不需要参数。 不修改栈。
isEmpty() 测试栈是否为空。不需要参数，并返回布尔值。
size() 返回栈中的 item 数量。不需要参数，并返回一个整数。]]></description><category></category></item><item><title><![CDATA[python  读取和保存图片方法]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108709608</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108709608</guid><author>hezhenpp</author><pubDate>Mon, 21 Sep 2020 15:12:06 +0800</pubDate><description><![CDATA[方法一、PIL读取方式
(1)打开文件指令为Image.open(‘house.jpg’)，Image.open(‘house.jpg’).convert(‘L’)
(2)打开后图像格式为PIL.JpegImagePlugin.JpegImageFile image， 通道顺序为RGB；灰度图则分别为None和mode=L；
(3)需要使用nd.array()转换为array格式的矩阵，
(4)保存时再用Image.fromarray()转换回图像&lt;PIL.Image.Image image
(5)保]]></description><category></category></item><item><title><![CDATA[递归的三定律]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/108492314</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/108492314</guid><author>hezhenpp</author><pubDate>Wed, 09 Sep 2020 16:29:05 +0800</pubDate><description><![CDATA[递归的三定律
例：
def listsum(numList):
if len(numList) == 1:
return numList[0]
else:
return numList[0] + listsum(numList[1:])
print(listsum([1,3,5,7,9]))


所有递归算法必须服从三个重要的定律：
1. 递归算法必须具有基本情况。
2. 递归算法必须改变其状态并向基本情况靠近。
3. 递归算法必须以递归方式调用自身。
首先，基本情况是算法停止递归的条件。基本情况通常是足够]]></description><category></category></item><item><title><![CDATA[用pip安装tensorflow换成国内源快速安装]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/107190577</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/107190577</guid><author>hezhenpp</author><pubDate>Tue, 07 Jul 2020 21:10:05 +0800</pubDate><description><![CDATA[用pip安装tensorflow换成国内源快速安装
pip install --index-url https://pypi.douban.com/simple tensorflow
或pip install --index-url https://mirrors.aliyun.com/pypi/simple/ tensorflow

]]></description><category></category></item><item><title><![CDATA[LeetCode-长度最小的子数组]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/107001437</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/107001437</guid><author>hezhenpp</author><pubDate>Sun, 28 Jun 2020 16:09:40 +0800</pubDate><description><![CDATA[长度最小的子数组
题目描述
给定一个含有 n 个正整数的数组和一个正整数 s ，找出该数组中满足其和 ≥ s 的长度最小的连续子数组，并返回其长度。如果不存在符合条件的连续子数组，返回 0。
示例:
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。
题解
class Solution(object):
    def minSubArrayLen(self, s, nums):
        """
        ]]></description><category></category></item><item><title><![CDATA[LeetCode刷题日记2--寻找两个正序数组中的中位数]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/106857609</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/106857609</guid><author>hezhenpp</author><pubDate>Fri, 19 Jun 2020 15:42:14 +0800</pubDate><description><![CDATA[题目描述
给定两个大小为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。
请你找出这两个正序数组的中位数，并且要求算法的时间复杂度为 O(log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。
示例 1:
nums1 = [1, 3]
nums2 = [2]
则中位数是 2.0
示例 2:
nums1 = [1, 2]
nums2 = [3, 4]
则中位数是 (2 + 3)/2 = 2.5
题解
class Solution(object):
    def f]]></description><category></category></item><item><title><![CDATA[leetcode刷题日记1--验证回文数]]></title><link>https://blog.youkuaiyun.com/hezhenpp/article/details/106857434</link><guid>https://blog.youkuaiyun.com/hezhenpp/article/details/106857434</guid><author>hezhenpp</author><pubDate>Fri, 19 Jun 2020 15:34:27 +0800</pubDate><description><![CDATA[leetcode刷题日记1--验证回文数题目描述题解
题目描述
给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。
说明：本题中，我们将空字符串定义为有效的回文串。
[Alt]
题解
去博客设置页面，选择一款你喜欢的代码片高亮样式，下面展示同样高亮的 代码片.
// An highlighted block
class Solution(object):
    def isPalindrome(self, s):
        """
        :type s: st]]></description><category></category></item></channel></rss>