<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[single6的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/single6</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; single6]]></copyright><item><title><![CDATA[布匹疵点智能识别 遇到的问题]]></title><link>https://blog.youkuaiyun.com/single6/article/details/113926070</link><guid>https://blog.youkuaiyun.com/single6/article/details/113926070</guid><author>single6</author><pubDate>Sun, 21 Feb 2021 23:33:56 +0800</pubDate><description><![CDATA[docker构建镜像并推送

在安装好 Docker 环境的本机/服务器构建并推送容器镜像。过程中可能会使用 docker 命令，如拉取 docker pull ，推送 docker push ，构建 docker build 等；

1、准备所需文件：根据存放任务镜像的所需文件，包含dockerfile文件等（包含base imagesm 根目录 执行命令）

2、构建镜像，采用的阿里云镜像，docker build -t registry.cn shenzhen.aliyuncs.com/test_f.]]></description><category></category></item><item><title><![CDATA[回溯算法团灭排列/组合/子集问题]]></title><link>https://blog.youkuaiyun.com/single6/article/details/108700809</link><guid>https://blog.youkuaiyun.com/single6/article/details/108700809</guid><author>single6</author><pubDate>Sun, 20 Sep 2020 23:44:21 +0800</pubDate><description><![CDATA[今天就来聊三道考察频率高，而且容易让人搞混的算法问题，分别是求子集（subset），求排列（permutation），求组合（combination）。这几个问题都可以用回溯算法解决。

一、子集

问题很简单，输入一个不包含重复数字的数组，要求算法输出这些数字的所有子集。


vector&lt;vector&lt;int&gt;&gt;subsets(vector&lt;int&gt;&amp;nums);


比如输入nums = [1,2,3]，你的算法应输出 8 个子集，包含空集和本身，顺序...]]></description><category></category></item><item><title><![CDATA[快速排序--思路理解]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107968502</link><guid>https://blog.youkuaiyun.com/single6/article/details/107968502</guid><author>single6</author><pubDate>Wed, 12 Aug 2020 23:23:22 +0800</pubDate><description><![CDATA[与归并排序一样，快速排序也是一个分治算法，需要选择一个基准（第一个元素，最后一个元素，随机一个元素），以此基准作为划分；快速排序的关键是划分partion()；。每一趟划分，我们就可以将作为基准值 x 放到排序数组的正确位置，并且将所有比 x 小的放到 x 的左边，所有比 x 大的元素放到 x 的右边。




class QuickSort 
{ 
    /*将最后一个元素作为 pivot 进行划分操作*/
    int partition(int arr[], int low, int hig...]]></description><category></category></item><item><title><![CDATA[LeetCode297：二叉树的序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107947309</link><guid>https://blog.youkuaiyun.com/single6/article/details/107947309</guid><author>single6</author><pubDate>Wed, 12 Aug 2020 00:06:27 +0800</pubDate><description><![CDATA[实现一个类：


public class Codec {

    // 把一棵二叉树序列化成字符串
    public String serialize(TreeNode root) {}

    // 把字符串反序列化成二叉树
    public TreeNode deserialize(String data) {}
}

比如：

serialize方法也许会把它序列化成字符串2,1,#,6,3,#,#，其中#表示null指针，那么把这个字符串再输入deserialize方法...]]></description><category></category></item><item><title><![CDATA[文件与文件系统]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107887166</link><guid>https://blog.youkuaiyun.com/single6/article/details/107887166</guid><author>single6</author><pubDate>Sat, 08 Aug 2020 22:48:05 +0800</pubDate><description><![CDATA[打开文件：


open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) Open file and return a stream. Raise OSError upon failure.
file: 必需，文件路径（相对或者绝对路径）。
mode: 可选，文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline]]></description><category></category></item><item><title><![CDATA[模块与datetime模块]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107872260</link><guid>https://blog.youkuaiyun.com/single6/article/details/107872260</guid><author>single6</author><pubDate>Fri, 07 Aug 2020 23:52:23 +0800</pubDate><description><![CDATA[模块：

Python 提供了一个办法，把这些定义存放在文件中，为一些脚本或者交互式的解释器实例使用，这个文件被称为模块（Module）
	模块是一个包含所有你定义的函数和变量的文件，其后缀名是.py。模块可以被别的程序引入，以使用该模块中的函数等功能。这也是使用 Python 标准库的方法。
	容器 -&gt; 数据的封装
	函数 -&gt; 语句的封装
	类 -&gt; 方法和属性的封装
	模块 -&gt; 程序文件
命名空间：

内置命名空间（Built-in Namespaces）：Python 运]]></description><category></category></item><item><title><![CDATA[类与对象，魔术方法-Python]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107802926</link><guid>https://blog.youkuaiyun.com/single6/article/details/107802926</guid><author>single6</author><pubDate>Wed, 05 Aug 2020 23:12:18 +0800</pubDate><description><![CDATA[对象 = 属性 + 方法

对象是类的实例。换句话说，类主要定义对象的结构，然后我们以类为模板创建对象。类不但包含方法定义，而且还包含所有实例共享的数据。

使用关键字class定义 Python 类，关键字后面紧跟类的名称、分号和类的实现。


class Student():
    classs = 'high'
    major = 'math'
    def study(self):
        print('i like studying')
    def learn(self):..]]></description><category></category></item><item><title><![CDATA[函数与Lambda表达式]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107753143</link><guid>https://blog.youkuaiyun.com/single6/article/details/107753143</guid><author>single6</author><pubDate>Sun, 02 Aug 2020 23:12:14 +0800</pubDate><description><![CDATA[函数的定义

函数以def关键词开头，后接函数名和圆括号()。
	函数执行的代码以冒号起始，并且缩进。
	return [表达式] 结束函数，选择性地返回一个值给调用方。不带表达式的return相当于返回None
	
def func_print(str):
    print(str)
    
func_print('hello')
	
可变参数：

*args- 可变参数，可以是从零个到任意个，自动组装成元组。
	加了星号（*）的变量名会存放所有未命名的变量参数。

def printinfo(ar.]]></description><category></category></item><item><title><![CDATA[python 字典、集合、序列]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107702842</link><guid>https://blog.youkuaiyun.com/single6/article/details/107702842</guid><author>single6</author><pubDate>Fri, 31 Jul 2020 23:50:25 +0800</pubDate><description><![CDATA[字典

字典以"关键字"为索引，关键字可以是任意不可变类型，通常用字符串或数值。键必须是互不相同的（在同一个字典之内）
	字典是 Python 唯一的一个 映射类型，字符串、元组、列表属于序列类型。
	{key1:value1, key2:value2, ..., keyn:valuen}
判断数据类型是否可变：

麻烦方法：用id(X)函数，对 X 进行某种操作，比较操作前后的id，如果不一样，则X不可变，如果一样，则X可变。
	便捷方法：用hash(X)，只要不报错，证明X可被哈...]]></description><category></category></item><item><title><![CDATA[列表、元组、字符串]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107646742</link><guid>https://blog.youkuaiyun.com/single6/article/details/107646742</guid><author>single6</author><pubDate>Tue, 28 Jul 2020 23:00:00 +0800</pubDate><description><![CDATA[1. 列表的定义

列表是有序集合，没有固定大小，能够保存任意数量任意类型的 Python 对象，语法为[元素1, 元素2, ..., 元素n]。

列表内容可更改 (mutable)，因此附加 (append,extend)、插入 (insert)、删除 (remove,pop) 这些操作都可以用在它身上;


x = ['sas','asasaa']
print(x,type(x))

['sas', 'asasaa'] &lt;class 'list'&gt;

创建列表方式：

1、利用ran...]]></description><category></category></item><item><title><![CDATA[最大矩形、柱状图的最大面积 C++]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107576758</link><guid>https://blog.youkuaiyun.com/single6/article/details/107576758</guid><author>single6</author><pubDate>Mon, 27 Jul 2020 22:51:19 +0800</pubDate><description><![CDATA[最大矩形问题分两种：一种是柱状图的面积，一种是给出一个矩阵，找出矩阵（点为1）的最大面积；图形分别如下：

后面一种可以转换成各行的柱状图的叠加；



柱状图

1
			0
			0
			1
		0
			1
			1
			1
		1
			1
			1
			1
		0
			0
			0
			0
		                                     矩阵

1、柱状图的最大面积

核心思想主要是...]]></description><category></category></item><item><title><![CDATA[异常处理，Python 猜数字游戏]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107586470</link><guid>https://blog.youkuaiyun.com/single6/article/details/107586470</guid><author>single6</author><pubDate>Sat, 25 Jul 2020 23:08:34 +0800</pubDate><description><![CDATA[异常就是运行期检测到的错误。可以根据异常类型来修改代码；

常见类型：


OverflowError：数值运算超出最大限制
AttributeError：尝试访问未知的对象属性
IOError：输入/输出操作失败
OSError：操作系统产生的异常（例如打开一个不存在的文件）
MemoryError：内存溢出（可通过删除对象释放内存）
NameError：尝试访问一个不存在的变量
UnboundLocalError：访问未初始化的本地变量
RuntimeError：一般的运行时异常
SyntaxEr...]]></description><category></category></item><item><title><![CDATA[Python中条件循环结构]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107548381</link><guid>https://blog.youkuaiyun.com/single6/article/details/107548381</guid><author>single6</author><pubDate>Thu, 23 Jul 2020 22:22:39 +0800</pubDate><description><![CDATA[Python 使用缩进而不是大括号来标记代码块边界，跟其他语言形式不同，缩进不对等编译会报错：

多个判断时使用if - elif - else 语句；

assert这个关键词我们称之为“断言”，当这个关键词后边的条件为 False 时，程序自动崩溃并抛出AssertionError的异常。

assert(10&lt;1):判断错误，抛出异常；



while循环：


while 布尔表达式:
    代码块

while - else 循环：


while 布尔表达式:
    代码块
els.]]></description><category></category></item><item><title><![CDATA[Python--龟兔赛跑游戏]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107549223</link><guid>https://blog.youkuaiyun.com/single6/article/details/107549223</guid><author>single6</author><pubDate>Thu, 23 Jul 2020 22:22:07 +0800</pubDate><description><![CDATA[题目描述：

话说这个世界上有各种各样的兔子和乌龟，但是研究发现，所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛，小华对此很感兴趣，于是决定研究不同兔 子和乌龟的赛跑。他发现，兔子虽然跑比乌龟快，但它们有众所周知的毛病——骄傲且懒惰，于是在与乌龟的比赛中，一旦任一秒结束后兔子发现自己领先t米或以 上，它们就会停下来休息s秒。对于不同的兔子，t，s的数值是不同的，但是所有的乌龟却是一致——它们不到终点决不停止。

然而有些比赛相当漫长，全程观看会耗费大量时间，]]></description><category></category></item><item><title><![CDATA[leetcode 习题 136. 只出现一次的数字]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107547263</link><guid>https://blog.youkuaiyun.com/single6/article/details/107547263</guid><author>single6</author><pubDate>Thu, 23 Jul 2020 22:00:06 +0800</pubDate><description><![CDATA[给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。

根据给出条件，一个数组，除了一个元素出现一次，其他元素均是成对出现；

线性时间复杂度：时间复杂度最高为O(n)

不使用额外空间：要求空间复杂度最高为O(1)。

思路一：可以将数组排序，然后两个指针进行遍历即可：该数经过排序后肯定为偶数


class Solution {
public:
    int singleNumber(vector&lt;int&gt;&amp; nums) {
...]]></description><category></category></item><item><title><![CDATA[Python中变量、运算符、数据类型及位运算]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107500466</link><guid>https://blog.youkuaiyun.com/single6/article/details/107500466</guid><author>single6</author><pubDate>Tue, 21 Jul 2020 23:03:52 +0800</pubDate><description><![CDATA[相比于C/C++，Python中使用变量差别还是很大的，刚开始也不习惯，还需要适应；

注释单行用#
多行使用''' ''' / """ """

对于变量，声明整形前不用int,直接识别；字符串也可以直接打印；


a = 12
print(a)
// 12

print("Hello world")
//Hello world

除/，python 中会有小数点；此外还多了地板除，应该是向下取整：


print(5/3)
//1.6666666666666667
print(5 // 3)
//1

]]></description><category></category></item><item><title><![CDATA[KMP算法详细解析（C/C++）]]></title><link>https://blog.youkuaiyun.com/single6/article/details/107443501</link><guid>https://blog.youkuaiyun.com/single6/article/details/107443501</guid><author>single6</author><pubDate>Sun, 19 Jul 2020 12:29:44 +0800</pubDate><description><![CDATA[从文本中找出匹配的单词或者字符串，使用kmp算法，效率提升很多，可以防止多次重复比较，浪费时间；前提是需要找到该字符串的公共前后缀，不至于从头比较:

具体分析如下：


如：
T ： a a a a a a a a b
P  : a a a a b
找出P的公共前后缀：

  0： a
  1 : a a
  2 : a a a
  3 : a a a a
    : a a a a b  //总共五个字符，所以将前面的数组下移：

 -1  : a
  0 : a a
  1 : a a a
  2 :]]></description><category></category></item><item><title><![CDATA[街景字符编码识别（task6）模型集成]]></title><link>https://blog.youkuaiyun.com/single6/article/details/106506264</link><guid>https://blog.youkuaiyun.com/single6/article/details/106506264</guid><author>single6</author><pubDate>Tue, 02 Jun 2020 22:23:17 +0800</pubDate><description><![CDATA[集成学习方法
在机器学习中的集成学习可以在一定程度上提高预测精度，常见的集成学习方法有Stacking、Bagging和Boosting，同时这些集成学习方法与具体验证集划分联系紧密。由于深度学习模型一般需要较长的训练周期，如果硬件条件不允许建议选取留出法，如果需要追求精度可以使用交叉验证的方法。
10折交叉验证，训练得到10个CNN模型：每个模型选取一个不同的验证集，求出后取均值；
Dropout可以作为训练深度神经网络的一种技巧。在每个训练批次中，通过随机让一部分的节点停止工作。同时在预测的过程中让所有]]></description><category></category></item><item><title><![CDATA[街景字符编码识别（四）—— 模型训练与验证]]></title><link>https://blog.youkuaiyun.com/single6/article/details/106448684</link><guid>https://blog.youkuaiyun.com/single6/article/details/106448684</guid><author>single6</author><pubDate>Sat, 30 May 2020 22:55:35 +0800</pubDate><description><![CDATA[模型训练与验证模型训练模型加载和保存模型调参流程
模型训练
模型加载和保存
模型调参流程
模型训练：构造训练集和验证集，每轮进行训练和验证，并根据最优验证集精度保存模型，代码如下：
train_loader = torch.utils.data.DataLoader(
    train_dataset,
    batch_size=10, 
    shuffle=False, 
    num_workers=0, 
)
    
val_loader = torch.utils.data.DataL]]></description><category></category></item><item><title><![CDATA[Pytorch 中Dataloader中num_samples问题]]></title><link>https://blog.youkuaiyun.com/single6/article/details/106393423</link><guid>https://blog.youkuaiyun.com/single6/article/details/106393423</guid><author>single6</author><pubDate>Wed, 27 May 2020 23:42:15 +0800</pubDate><description><![CDATA[num_samples should be a positive integer value, but got num_samples=0
在window中，有的可以将num_samples设为0，但是我这边还是会报错：
ValueError                                Traceback (most recent call last)
&lt;ipython-input-26-72c27d20c47d&gt; in &lt;module&gt;
     16     ]]]></description><category></category></item></channel></rss>