自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(228)
  • 收藏
  • 关注

原创 Tornado Websocket 403报错解决

403 GET /ws (前端IP地址) 0.00ms。

2023-05-09 15:37:07 585 1

原创 解决RuntimeError: CUDA unknown error - this may be due to an incorrectly set up environment

在import torch的时候就报了这个错,试了一下在程序中设置环境变量并不能解决这个问题。

2023-03-29 14:48:32 2417

原创 python——使用cv2拼接图片(含代码)

很多时候我们需要把几张图片拼到一起,当然可以使用PS之类的软件来处理,但是使用python更快并且能批量处理。

2023-02-01 16:58:50 3832

原创 python——使用cv2.resize改变图像大小(含代码)

很多时候我们需要把图片处理成特定大小的图,比如把800*800的图变成512*512,使用python的cv2模块我们可以快速批量完成这一过程。

2023-02-01 16:39:37 5509

原创 私人定制AI绘画——快速finetune stable diffusion教程

AI创作正在逐步超越人类。

2022-12-06 17:41:18 15254 3

原创 python——删除文件夹下的所有文件和子文件夹(含代码)

python删除文件夹下的所有文件。

2022-08-31 16:36:12 8525

原创 漫反射贴图与镜面光贴图

什么是漫反射贴图与镜面光贴图?

2022-02-25 17:51:50 8034

原创 为什么法线贴图(Normal Mapping)都是蓝色的?

法线详解

2022-02-24 19:13:18 9287 2

原创 在游戏里完美还原自己的脸——《MeInGame》论文解析

看看你的脸放进游戏是什么样。

2022-01-20 21:30:32 12376

原创 python——画t-sne图(含代码)

使用python画t-sne图。

2021-12-31 17:55:29 22127 7

原创 opencv-python(cv2)——如何读取和保存中文路径图片(含代码)

使用opencv-python(cv2)读取和保存中文路径图片(含代码)。

2021-12-31 16:30:56 19835 3

原创 RuntimeError: Attempting to deserialize object on CUDA device 2 but torch.cuda.device_count() is 2.

解决报错RuntimeError: Attempting to deserialize object on CUDA device 2 but torch.cuda.device_count() is 2. Please use torch.load with map_location to map your storages to an existing device.

2021-12-31 16:21:40 10776 1

原创 python--lintcode486.合并k个排序数组

描述将k个有序数组合并为一个大的有序数组。样例样例 1:输入: [ [1, 3, 5, 7], [2, 4, 6], [0, 8, 9, 10, 11] ]输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]样例 2:输入: [ [1,2,3], [1,2] ]输出: [1,1,2,2,3]挑战在 O(N log k) 的时间复杂度内完成:N是所有数...

2021-05-26 17:23:49 7411

原创 python--简单选择排序实现

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。python代码:def select_sort(nums): for i in range(len(nums)): min_index=i for j in range(i+1,len(nums)):

2021-05-17 15:42:11 6861

原创 python--冒泡排序实现

如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式。1.原理:比较两个相邻的元素,将值大的元素交换到右边2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。    (1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。    (2)比较第2和第3个数,将小数 放在前面,大数放在后面。    ......    (3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成    (4)在上面一趟比

2021-05-17 15:35:14 5696

原创 python--直接插入排序实现

插入排序的主要思想是每次取一个列表元素与列表中已经排序好的列表段进行比较,然后插入从而得到新的排序好的列表段,最终获得排序好的列表。比如,待排序列表为[49,38,65,97,76,13,27,49],则比较的步骤和得到的新列表如下:(带有背景颜色的列表段是已经排序好的,红色背景标记的是执行插入并且进行过交换的元素)时间复杂度:O(n^2)待排序:    [49,38,65,97,76,13,27,49]第一次比较后: [38,49,65,97,76,13,27,49] 第二...

2021-05-17 15:14:32 6854

原创 python--lintcode450.K组翻转链表

描述给定一个链表,一次反转链表 k 的节点并返回其修改后的列表。如果节点的数量不是k的倍数,那么最后遗漏的节点应该保持原样。不能更改节点中的值,只能更改节点本身。只允许使用常量内存。样例样例1输入:list = 1->2->3->4->5->nullk = 2输出:2->1->4->3->5样例2输入:list = 1->2->3->4->5->nullk = 3输出:3-

2021-05-11 21:05:40 6803

原创 python--lintcode35.翻转链表

描述翻转一个链表样例样例 1:输入:链表 = 1->2->3->null输出:3->2->1->null解释:翻转链表样例 2:输入:链表 = 1->2->3->4->null输出:4->3->2->1->null解释:翻转链表基础题,思路就是用不同指针去做。直接给出代码吧:class Solution: def rev.

2021-05-11 21:01:23 6805

原创 python--lintcode33 · N皇后问题(一)

描述N皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击(任意两个皇后不能位于同一行,同一列,同一斜线)。给定一个整数n,返回所有不同的N皇后问题的解决方案。每个解决方案包含一个明确的N皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。样例样例 1:输入:n = 1输出:[["Q"]]解释:只有一种方案。样例 2:输入:n = 4输出:[ // Solution 1 [".Q..", "...Q"

2021-05-11 17:37:42 5781

原创 python--lintcode16 · 带重复元素的排列

描述给出一个具有重复数字的列表,找出列表所有不同的排列。样例样例 1:输入:nums = [1,1] 输出:[ [1,1] ] 解释:[1,1]的不同排列只有[1,1]。样例 2:输入:nums = [1,2,2] 输出:[ [1,2,2], [2,1,2], [2,2,1] ] 解释:[1,2,2]的不同排列有[1,2,2],[2,1,2],[2,2,1]。这一题是上一题的升级版,最主要的.

2021-05-10 20:56:12 6840

原创 python--lintcode15 · 全排列

描述给定一个数字列表,返回其所有可能的排列。你可以假设没有重复数字。样例样例 1:输入:列表 = [1]输出:[ [1]]样例 2:输入:列表 = [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]挑战使用递归和非递归分别解决。这一题就是排列组合问题,排列组合全部使用DFS来做。写DFS的时候要注意递归的出口以及.

2021-05-10 19:39:19 5647

原创 python--lintcode136.分割回文串

描述给定字符串s, 需要将它分割成一些子串, 使得每个子串都是回文串.返回所有可能的分割方案.不同的方案之间的顺序可以是任意的. 每种分割方案中的每个子串都必须是s中连续的一段.样例样例 1:输入: "a"输出: [["a"]]解释: 字符串里只有一个字符, 也就只有一种分割方式 (就是它本身)样例 2:输入: "aab"输出: [["aa", "b"], ["a", "a", "b"]]解释: 有两种分割的方式. 1. 将 "aab" 分割...

2021-05-10 17:23:34 5962

原创 一张照片生成属于你的游戏脸——《Fast and Robust Face-to-Parameter Translation for Game Character Auto-Creation》论文解析

之前介绍过ICCV的一篇文章,来自伏羲的智能捏脸论文。主要作用就是上传一张照片,自动在游戏中捏出相似的脸。这一次还是介绍一篇新论文,作者改进了之前的算法,使得推断过程不再需要使用梯度下降进行迭代,提升了性能加快了速度。论文全名:《Fast and Robust Face-to-Parameter Translation for Game Character Auto-Creation》智能捏脸V1链接如下:https://blog.csdn.net/wenqiwenqi123/article/det

2021-05-08 15:05:41 6796

原创 python--lintcode433 · 岛屿的个数

描述给一个 01 矩阵,求不同的岛屿的个数。0 代表海,1 代表岛,如果两个 1 相邻,那么这两个 1 属于同一个岛。我们只考虑上下左右为相邻。样例样例 1:输入:[ [1,1,0,0,0], [0,1,0,0,1], [0,0,0,1,1], [0,0,0,0,0], [0,0,0,0,1]]输出:3样例 2:输入:[ [1,1]]输出:1这一题使用宽度优先搜索来做会比较简单,当然也可以用深搜来做。 具体做法就是每检测到一...

2021-05-07 17:57:09 5749

原创 python--lintcode70 · 二叉树的层次遍历 II

描述给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)样例样例 1:输入:tree = {1,2,3}输出:[[2,3],[1]]解释: 1 / \ 2 3它将被序列化为 {1,2,3}样例 2:输入:tree = {3,9,20,#,#,15,7}输出:[[15,7],[9,20],[3]]解释: 3 / \ 9 20

2021-05-07 11:27:12 5703

原创 python--lintcode596 · 最小子树

描述给一棵二叉树, 找到和为最小的子树, 返回其根节点。输入输出数据范围都在int内。LintCode会打印根节点为你返回节点的子树。保证只有一棵和最小的子树并且给出的二叉树不是一棵空树。样例样例 1:输入:{1,-5,2,1,2,-4,-5}输出:1说明这棵树如下所示: 1 / \ -5 2 / \ / \1 2 -4 -5 整颗树的和是最小的,所以返回根节点1.样例 2:输入:{1}输出:1说明:这.

2021-04-30 17:23:45 130 1

原创 python--lintcode480 · 二叉树的所有路径

描述给一棵二叉树,找出从根节点到叶子节点的所有路径。样例样例 1:输入:{1,2,3,#,5}输出:["1->2->5","1->3"]解释: 1 / \2 3 \ 5样例 2:输入:{1,2}输出:["1->2"]解释: 1 / 2 这一题使用分治法来做会比较好,什么叫分治法呢?就是把一个复杂的问题拆分,在拆分完成后再merge。比如说这一题就可以拆分,首先找规律,对于每一个非叶结.

2021-04-30 17:01:22 6130 1

原创 python--lintcode67 · 二叉树的中序遍历

描述给出一棵二叉树,返回其中序遍历。样例样例 1:输入:二叉树 = {1,2,3}输出:[2,1,3]解释:1/ \2 3它将被序列化为{1,2,3}中序遍历样例 2:输入:二叉树 = {1,#,2,3}输出:[1,3,2]解释:1 \ 2 /3它将被序列化为{1,#,2,3}中序遍历二叉树的遍历其实用递归做非常简单,无论是前序中序还是后序遍历,都只需要调整一下访问的顺序就行...

2021-04-30 16:18:59 5630 1

原创 python--lintcode.74 · 第一个错误的代码版本

描述代码库的版本号是从1到n的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过isBadVersion的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见代码的注释部分。请阅读代码编辑框内注释代码,获取对于不同语言正确调用isBadVersion的方法,比如java的调用方式是SVNRepo.isBadVersion(v)样例样例 1:输入:n = ...

2021-04-29 17:54:49 5647

原创 python--lintcode1536 · 在排序数组中查找元素的第一个和最后一个位置

描述给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。样例样例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]样例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]这一题是上一题的升级版,要找到开始位置...

2021-04-29 17:36:13 5664

原创 python--lintcode14.二分查找

描述给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例样例 1:输入:数组 = [1,4,4,5,7,7,8,9,9,10]target = 1输出:0解释:第一次出现在第0个位置。样例 2:输入:数组 = [1, 2, 3, 3, 4, 5, 10]target = 3输出:2解释:第一次出现在.

2021-04-29 17:00:16 167

原创 只需少量数据就能适应网络——《FEW-SHOT ADAPTATION OF GENERATIVE ADVERSARIAL NETWORKS》论文解析

今天来看一篇few-shot适应的论文,还挂在arxiv上,同时在github上也有开源的项目:http://www.estherrobb.com/few-shot-gan/这篇文章来自弗吉尼亚理工和谷歌研究院。谷歌研究院就喜欢搞一些开源、video什么的。那么这篇文章做了一件什么事呢?对于一个生成网络,我们本来需要大量的数据才能训练出一个好的结果,但是在某些情况下,我们只能获得少量的数据。因此合理地利用先验知识,在这个域中只使用少量数据就得到较好的结果就变得有必要了。那么就来看看是怎么做的吧:

2020-12-07 17:38:59 6702 4

原创 将你的脸变成动漫——《UI2I_via_StyleGAN2》论文解析

最近github上开源了一个有点意思的项目,将真实世界的人脸变成动漫里的脸,当然也支持油画风之类的其他风格,或是反过来也可以。github地址:https://github.com/HideUnderBush/UI2I_via_StyleGAN2那么是怎么做的呢?作者将其论文也挂出来了,我们来看一看。这篇论文的全名叫做《Unsupervised Image-to-Image Translation via Pre-trained StyleGAN2 Network》。首先我们需要确定一下我们

2020-11-27 17:51:16 1482 1

原创 人脸生成的最强算法——《StyleGAN》论文解析

今天我们来看一篇人脸生成的论文,这个算法我愿称之为业界最强。来自英伟达的styleGAN,全名《A Style-Based Generator Architecture for Generative Adversarial Networks》。这个算法做的事很简单,生成逼真的人脸。不仅开源了代码,还开源了数据集,地址:https://github.com/NVlabs/stylegan来看看算法思想:正常的GAN网络都如左边这个a图所示,直接一个隐变量z作为输入,输入到生成器后经过层层网

2020-11-25 19:50:11 8836 3

原创 生成属于你自己的字库——《RD-GAN》ECCV论文解析

今天看一篇few-shot的字体风格迁移论文,全名《RD-GAN: Few/Zero-Shot Chinese Character Style Transfer via Radical Decomposition and Rendering》,来自ECCV2020。这篇文章的核心创新点是:1、只需要少量数据就能生成需要的字体2、把汉字拆解成了部首3、提出了一个多层次的判别器算法流程如下图:主要分为三个模块,REM、RRM和多层次判别器。REM把一个字分成多个部分(部首).

2020-11-24 17:57:26 6464

原创 生成属于你自己的字库——《ChiroGAN》论文解析

这篇论文的全名叫做《GAN-Based Unpaired Chinese Character Image Translation via Skeleton Transformation and Stroke Rendering》,也是一个字体生成(风格迁移)算法,来自AAAI2020。与上一篇calliGAN(地址:https://blog.csdn.net/wenqiwenqi123/article/details/109775206)不同的是,这篇论文不需要使用paired data。啥意思呢?

2020-11-18 17:54:35 752

原创 生成属于你自己的字库——《CalliGAN:Style and Structure-aware Chinese Calligraphy Character Generator》论文解析

最近在准备CVPR比较忙,所以有点久没更新。今天来看一篇字体生成的论文,这篇论文的题目叫做:《CalliGAN:Style and Structure-aware Chinese Calligraphy Character Generator》,the work has been accepted to the AI for content creation workshop at CVPR 2020.是中了CVPR2020的workshop。那么这论文是做一件什么事呢?就是比如说你自己写了几百个字

2020-11-18 16:14:52 1240 4

原创 tensorflow——分类问题如何计算准确率以及top5准确率

我们在使用深度学习解决一个分类问题的时候,需要计算准确率来评价算法,有的时候会使用top3、top5准确率,那么在tensorflow中如何实现呢?一般分类网络都会使用交叉熵损失函数,在使用交叉熵之前,对于n分类问题,网络会输出n维的向量。比如说你要分猫和狗,就是一个二分类问题,网络输出一个2维的向量,向量的值越大,则对应的类别的可能性就越高。这个向量我们称之为logits。因此计算准确率的代码为: accuracy = tf.reduce_mean(tf.cast(tf.equal

2020-09-07 16:53:23 11799

原创 tensorflow——tf.reduce_mean()函数详解

tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。用法:tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)第一个参数input

2020-09-07 16:30:39 757

原创 tensorflow——tf.cast()详解

tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换,比如把int8转换为float32。用法:a=tf.cast(x, dtype, name=None)第一个参数 x: 待转换的数据(张量) 第二个参数 dtype: 目标数据类型 第三个参数 name: 可选参数,定义操作的名称举个例子:int32转换为float32:import tensorflow as tf t1 = tf.Variable([1,2,3,4,5])t2 = tf...

2020-09-07 16:26:34 8655

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除