首页 > 其他分享 >Perceptual Losses 风格迁移论文复现小记

Perceptual Losses 风格迁移论文复现小记

时间:2023-10-16 15:34:04浏览次数:44  
标签:论文 代码 Losses train2014 pytorch 文件夹 复现 Perceptual 小记

看了一篇李飞飞组的论文 Perceptual Losses for Real-Time Style Transfer and Super-Resolution。
论文地址为:https://arxiv.org/pdf/1603.08155.pdf))

想去找找代码复现一下。

原文没有提供代码,就只有找找别人按照论文细节实现的代码。不过但是论文是2016年的,距离现在2023年已经很久了,所以找到的一些别人复现的代码的pytorch版本都比较老,难以使用。

不过还好找到了这个代码

https://github.com/pytorch/examples/blob/main/fast_neural_style/README.md

所以照着里面的指引可以很快利用其预训练模型去生成风格化的原图。

配环境也相对比较简单,选择适合自己CUDA版本的尽量新一点的pytorch即可。

conda create -n style python=3.10 -y
conda activate style
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

但是想要自己训练某个风格的预训练模型的时候遇到了一点问题。

主要是readme里面写着使用 COCO 2014 Training作为训练集,于是我下载了该数据集,放在项目的根目录下,文件夹名字为train2014,但是调用的时候却出现了一个问题,报错大致为:

FileNotFoundError: Couldn't find any class folder in ./train2014。

主要是因为用了下面这句代码来加载训练集,

train_dataset = datasets.ImageFolder(args.dataset, transform)

但是ImageFolder这个类需要在数据集的大文件夹下再创建有子类文件夹。

一开始还以为需要去将这13G的图片按照类型放入各自的子文件夹中,比如cat/dog之类的,还找了一下有没有相应的,但是后面一想,这也不是分类问题呀,在训练过程中并不需要类别的ground truth,所以就继续去GitHub上寻找与该问题相关的issue,最后找到了:

https://github.com/pytorch/examples/issues/1039

这里面显示这其实是一个小bug,解决办法是在train2014文件夹下,将所有图片都放进一个子文件夹内,我将该子文件夹命名为no_label,然后--dataset还是使用相对路径 ./train2014 即可。

标签:论文,代码,Losses,train2014,pytorch,文件夹,复现,Perceptual,小记
From: https://www.cnblogs.com/kevin-matrix/p/17767418.html

相关文章

  • 10.14 模拟赛小记
    传送门感觉我已经是半个废人了。A.P1118[USACO06FEB]BackwardDigitSumsG想到的是预处理杨辉三角,然后dfs找。我的预处理写的三维。原因是听大家打键盘的声音太吵了(指机械键盘),然后就不会写二维的了。然后只会写三维的。然后就被同学嘲讽为什么不写二维的。据说next_pe......
  • 数论筛法小记
    BaseSievebaseDirichletConvolutionSqrtDecomposition会挖坑,好让复习的时候长脑子。以下所有\(p\)都是质数,即\(p\in\mathbb{P}\),同时默认均为正整数。Base唯一分解定理(算术基本定理):\[\begin{align} \foralln>1,n=\prod\limits_{i=1}^kp_i^{t_i}\end{align}\]......
  • 我的国庆假期小记-先完成,再完美
    假期第一天玩游戏,刷视频,安逸之中似乎好像又有点无聊~假期第二天去朋友那玩了一天,逛书店的时候无意中看到一本书,买了下来以书为契机,准备找点事情来做,于是把之前一直拖延着的想法提上日程:总结下平时用过的一些技术。刚好在一个社群有大佬分享了一个放在飞书上的架构图,于是我打......
  • 字符串小记 II:字符串自动机
    OI中的自动机指的是“有限状态自动机”,它是对一串信号进行处理的数学模型,一般由以下三部分构成:字符集(\(\Sigma\)),能够输入进自动机的字符集合。状态集合(\(Q\)),相当于有向图中的节点。转移函数(\(\delta\)),相当于有向图中的边。我们通过输入的信息在这个有向图中转移,而这个有......
  • 《拉格朗日插值》小记
    随便学学,主要是又被卡科技了。参考文章:\(Alex\_Wei\)的拉格朗日插值与多项式乘法\(Alex\_Wei\)的多项式I:拉格朗日插值与快速傅里叶变换\(yyc\)的从拉插到快速插值求值算法介绍公式口糊主要用来对于一个给定的\(n\)次多项式,用\(n+1\)个点值在\(O(n^2)\)的时间复......
  • 23.9.29中秋小记
    这是我正式工作以来的第一个中秋。但好像我也没有很想家,没有思念的人。可能在我心中,家这个概念已经不存在了吧。究竟是从什么时候开始的呢?我也不知道虽然父母健在,他们也没有离婚,但是没有家了。......
  • 《prufer 序列》小记
    今天模拟赛被卡科技了,学一下这个东西,之前也看到很多次,只不过一直都没学。算法简介这是一种可以将带标号的树,转成唯一的整数序列表示的方法。而在“数树”题中也有大用。算法流程大概是将带标号的\(n\)个节点的数用\([1,n]\)中的\(n-2\)个整数来表示一个树。也可以理解成......
  • 莫比乌斯反演小记
    基本内容莫比乌斯函数\(\mu\)定义为\(1\)的逆。一些小性质:\(\mu*1=\epsilon\)\(\mu*\text{id}=\varphi\)反演内容我的理解是:\[[a=1]=\sum\limits_{d|a}\mu(d)\]典型例题例1P2398GCDSUM求\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(i,j)\]来推下式......
  • git blame 用法小记
    1、概述git管理的代码仓库,在协作开发中不可避免地会出现代码冲突,或者有新手错误地提交代码。出现问题不可怕,可怕的是找不到问题出在哪里。有时候找到出问题的代码,却不知道是谁提交的。git提供了一个有用的命令gitblame来帮你查看一个文件的每一行是如何被修改的,以及由谁修改......
  • loader编写小记
    此项目在一些大佬的基础上进行了修改,或许能提供一些思路。还在学习中很菜很菜,不足之处还请师傅们多多指点......