- 【图像去噪】实用小技巧 | 使用matlab将.mat格式的图像转成.png格式的图像,适用于DnD数据集的转换,附DND图像形式的数据集
十小大
matlab计算机视觉图像去噪人工智能深度学习数据集图像处理
请先看【专栏介绍文章】:【图像去噪(ImageDenoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)图像形式的DND数据集(.png格式)下载链接见本文底部,订阅专栏免费获取!文章目录前言DnD数据集介绍matlab将.mat转成.png尝试制作Ground-truth图像形式
- 删除文件踩的坑
天珩
今日所得java
踩坑的点:我删除文件的方式,一开始,为了方便,使用了file.deleteOnExit();这种方式,还顺便判断了一下,只有文件存在是时候才删除,省的多写一步判空操作,但是,闲来无事的时候,做了个测试,因为发现cpu有的时候占用率比较高翻翻源码/***Requeststhatthefileordirectorydenotedbythisabstract*pathnamebedeletedwhent
- 自动编码器 - Autoencoder
hellozhxy
深度学习人工智能机器学习
文章目录一、自编码器(Autoencoder)简单模型介绍二、神经网络自编码模型三、神经网络自编码器三大特点四、自编码器(Autoencoder)搭建五、几种常见编码器1.堆栈自动编码器2.欠完备自编码器3.正则自编码器4.噪自编码器(denoisingautoencoder,DAE)参考链接一、自编码器(Autoencoder)简单模型介绍暂且不谈神经网络、深度学习等,仅仅是自编码器的话,其原理
- Autoencoder
chuange6363
人工智能python
自编码器Autoencoder稀疏自编码器SparseAutoencoder降噪自编码器DenoisingAutoencoder堆叠自编码器StackedAutoencoder本博客是从梁斌博士的博客上面复制过来的,本人利用Tensorflow重新实现了博客中的代码深度学习有一个重要的概念叫autoencoder,这是个什么东西呢,本文通过一个例子来普及这个术语。简单来说autoencoder是一
- 扩散模型理论与公式推导——详细过程速览与理解加深
留尘铃
声音信号处理学习图像处理人工智能扩散模型学习深度学习理论推导
参考:[1]HoJ,JainA,AbbeelP.Denoisingdiffusionprobabilisticmodels[J].Advancesinneuralinformationprocessingsystems,2020,33:6840-6851.[2]扩散模型/DiffusionModel原理讲解_哔哩哔哩_bilibili[3]扩散模型公式推导_扩散模型数学推导-CSDN博客[4]扩散
- 亲子沟通:做刚刚好的妈妈
圆慧亲子关系与生命成长
英国精神分析学家温尼科特提出过一个术语“抱持”,他认为:好的父母会提供抱持性环境,当孩子表现好的时候给予认可,当孩子受到挫折的时候提供支持,能够给孩子提供“抱持”环境的父母不需要完美,GOODENOUGHMOTHER,“足够好的妈妈”,不能是差劲的匮乏性的妈妈,也不必是完美妈妈,刚刚好就可以了。国内精神分析学家曾奇峰老师翻译为“60分妈妈”。《P.E.T.父母效能训练》里面,托马斯.戈登博士提出“
- thinkphp报错No input file specified. (对于隐藏url中的index.php 是如何做到的?)
S_Yes
PHPthispanidtransmarkspanidtransmarksty
thinkphp51.去除httpd.conf文件中"#LoadModulerewrite_modulemodules/mod_rewrite.so"前面的"#"号;2.修改httpd.conf文件中的AllowOverrideNone为AllowOverrideAll,目的是支持.htaccess文件;##AllowOverridecontrolswhatdirectivesmaybeplace
- MySQL 数据库的规范化与反规范化详解
yimeixiaolangzai
MySQL数据库mysql
在数据库设计中,规范化(Normalization)和反规范化(Denormalization)是两个重要的概念,它们直接影响数据的存储效率、数据一致性以及查询性能。本文将详细介绍MySQL中的第一范式、第二范式和第三范式,同时探讨反规范化的应用场景。一、规范化简介规范化是一种组织数据库结构的方法,旨在减少数据冗余、消除数据异常,确保数据的完整性。规范化通常通过一系列的规则(称为范式)来实现。常见
- 【Hot100】LeetCode—104. 二叉树的最大深度
山脚ice
#Hot100leetcode算法
目录1-思路队列——层序遍历2-实现⭐104.二叉树的最大深度——题解思路3-ACM实现原题连接:104.二叉树的最大深度1-思路队列——层序遍历1-借助队列实现层序遍历Queuequeue=newLinkedListres=newArrayListqueue=newLinkedList0){TreeNodenowNode=queue.poll();if(nowNode.left!=null)qu
- 【每天一句,30天学好英语】
壹典心理咨询
【2023-1-19】早安春夏秋冬Wehaveworkedhardtocometothisworld,butnotfortheunbeautifulandsadweseeeveryday,wehavecriedenoughwhenwewereborn,andwe,noonecangobackalive,sodon'tspendtimelow,tobelieve,tobelonely,tolovea
- C语言--静态链表
魔同
数据结构c语言算法数据结构
静态链表使用数组来模拟链表,数组中的每个元素包含数据和下一个元素的索引。#include#include#defineMAX_SIZE100typedefstruct{intdata;//数据部分intnext;//下一个节点的索引}Node;typedefstruct{Nodenodes[MAX_SIZE];inthead;//头指针intfree;//自由节点的索引}StaticLinkedL
- css中,有哪些方式可以隐藏页面元素?区别?
呼叫6945
css前端面试
通过css实现隐藏元素方法有如下:六种方法display:nonevisibility:hiddenopacity:0设置height、width模型属性为0position:absoluteclip-pathdisplay:none设置元素的display为none是最常用的隐藏元素的方法.hide{display:none;}将元素设置为display:none后,元素在页面上将彻底消失元素本
- 【Unity Shader】透明度物体的阴影
sjsjs11
图形学unity游戏引擎
//UpgradeNOTE:replaced'mul(UNITY_MATRIX_MVP,*)'with'UnityObjectToClipPos(*)'//UpgradeNOTE:replaced'_Object2World'with'unity_ObjectToWorld'Shader"Custom/AlphaTestWithShadow"{Properties{_Color("ColorTin
- 518. Coin Change II
Recursions
算法leetcode职场和发展
Youaregivenanintegerarraycoinsrepresentingcoinsofdifferentdenominationsandanintegeramountrepresentingatotalamountofmoney.Returnthenumberofcombinationsthatmakeupthatamount.Ifthatamountofmoneycannotbema
- k8s排错指南
duansamve
Kuberneteskuberneteslinux容器
一、排查顺序:查看node状态→查看pod状态→查看container状态→查看service流量是否路由到pod→查看ingress配置是否正确→查看kubelet系统日志二、具体排查思路:1、排查node故障:#查看各节点状态:kubectlgetnode#查看node事件:kubectldescribenodeNode本身宕机或者Kubelet无法启动会导致Node上面的Pod无法正常运行已
- Stable Diffusion算法、结构全流程概述
lanlinbuaa
stablediffusionpython
StableDiffusion能力强、功能多、插件广,本文拟概述SD的全流程,方便梳理算法各结构的关系SD发展的重点论文DenoisingDiffusionProbabilisticModels(首次提出去噪扩散模型DDPM)DiffusionModelsBeatGANsonImageSynthesis(OpenAI改进UNet,DM超越GAN,ClassifierGuidance)High-Re
- can’t connect to redis-server问题处理(已验证)
兵兵呀
运维python开发语言运维
前言windows下用RedisDesktopManager连接redis出现以下问题can’tconnecttoredis-server一、can’tconnecttoredis-server二、解决办法bind0.0.0.0daemonizeyesprotected-modeno三、启动1.cmd窗口进入到以下目录(以下是我自己的,你的得要你看你自己的)E:\softe\Redis-x64-5
- 算法-递归
Arthur3827
算法算法java递归
题目:打印中序遍历指定节点的后续节点思路:两种情况当前节点右子树是否为null,如果不是返回右子树最左非空子节点,否则往上找,直到父节点为空或者当前节点是父节点的左子树,返回父节点publicclassCode06_SuccessorNode{publicstaticNodegetSuccessorNode(Nodenode){if(node==null)returnnull;//中序遍历当前节点
- 以非递归方式遍历二叉树(先序遍历 后序遍历 中序遍历)
Arthur3827
算法java算法二叉树
问题:以非递归方式遍历二叉树(先序遍历后序遍历中序遍历)思路:模拟递归方式的调用,为每个节点创建堆栈Flash,在pop时候判断当前节点是第几次访问,然后决定是否打印当前节点值以及为左右子节点创建堆栈Flash并入栈//模拟递归调用函数栈staticclassFlash{privateNodenode;privatebooleanvisited;privateintcount;publicFlas
- K8s核心概念介绍
一见不如故
kubernetskubernets
ClusterCluster是计算,存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用MasterMaster是Cluster的大脑,负责跳读,NodeNode的职责是运行容器应用,Node由Master管理,Node负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期PodPod是Kubernets的最小工作单元,每个Pod包含一个或者多个容器,Pod中的容器会作为
- 查找连续整数并且简化压缩表达
Python_Camp
https://www.codewars.com/kata/51ba717bb08c1cd60f00002f/train/pythonAformatforexpressinganorderedlistofintegersistouseacommaseparatedlistofeitherindividualintegersorarangeofintegersdenotedbythestarting
- redis 主从模式,sentinel 模式配置
一切顺势而行
redissentineljava
编辑sentinel.xml和redis.confredis.conf中核心是配置bind192.168.64.144daemonizeyesprotected-modenodbfilenameredis-6379.rdb#默认dump.rdbreplica-read-onlyyes#自动2.6副本默认只读,也就是slave只有只读权限replicationOf myapplication 192
- 习题2.3 old bill
513k
王道机试指南数据结构
描述Amonggrandfather’spapersabillwasfound.72turkeys$679Thefirstandthelastdigitsofthenumberthatobviouslyrepresentedthetotalpriceofthoseturkeysarereplacedherebyblanks(denoted_),fortheyarefadedandareillegi
- python CGI 编程
Simon_Zz
CGI是通用网关接口,是一段程序,运行在服务器上,如apache,nginx等如何配置python的CGI打开apache的httpd.conf#可指定自己的目录ScriptAlias/cgi-bin/"${INSTALL_DIR}/cgi-bin/"AllowOverrideNoneOptions+ExecCGIOrderallow,denyAllowfromall#添加headerAddHan
- CMNet:Contrastive Magnification Network for Micro-Expression Recognition 阅读笔记
pzb19841116
论文解读人工智能计算机视觉笔记
AAAI2023的一篇文章,东南大学几位老师的工作,用于做微表情识别中的运动增强工作,以下是阅读时记录的笔记。摘要:However,existingmagnificationstrategiestendtousethefeaturesoffacialimagesthatincludenotonlyintensitycluesasinten-sityfeatures,leadingtotheinte
- 鸿蒙开发出现ohpm ERROR: Install failed ENOENT: no such file or directory, stat...@ohos\hypium
rain12345678921
harmony工程harmonyos华为
鸿蒙开发出现如下错误:ohpmERROR:InstallfailedENOENT:nosuchfileordirectory,stat...@ohos\hypium原因大部分情况是开发环境配置出了问题解决方案1、重置DevEcostudio,重新配置开发环境2、配置ohpm路径(注意该路径需要磁盘空间较大,如果磁盘空间不够大,容易安装失败)
- HormonyOS-DevEco Studio新建空项目ERROR解决
嘿嘿?
HormonyOS开发harmonyos华为
一、问题背景再用HormonyOS开发工具DevEcoStudio创建了利用API9的EmptyProject,通过工具自带环境诊断工具排除了运行环境问题。-项目环境加载完成后出现了下面报错。ohpmERROR:InstallfailedENOENT:nosuchfileordirectory,stat'F:\HuaWei-HomonyOS\DevEcoStudioProjects\MyAppli
- FPGA转行ISP的探索之二:技术路线和概念
徐丹FPGA之路
FPGA异构计算算法fpga开发接口隔离原则算法
ISP领域的概念1相机方面的概念1)DENOISE,图像去噪图像噪声按噪声与信号的关系可分为加性噪声和乘性噪声;按照产生原因可分为外部噪声和内部噪声;按照统计特性可分为平稳噪声和非平稳噪声;平稳噪声基于统计后的概率密度函数又可以分为:高斯噪声、泊松噪声、脉冲噪声、瑞利噪声。图像去噪的算法一般是滤波,比如空域滤波,变换域滤波,机器学习方法等,经常是用OpenCV的代码来写。2)CONTRAST,对比
- (2024,L-DAE,去噪 DM,去噪 AE,影响 SSRL 性能的关键成分,PCA 潜在空间)解构自监督学习的去噪扩散模型
EDPJ
人工智能
DeconstructingDenoisingDiffusionModelsforSelf-SupervisedLearning公和众和号:EDPJ(进Q交流群:922230617或加VX:CV_EDPJ进V交流群)目录0.摘要4.解构去噪扩散模型4.1.用于自监督学习的重新导向DDM4.2.解构分词器4.3.迈向经典去噪自动编码器5.分析和对比6.结论0.摘要在这项研究中,我们研究了去噪扩散模型
- 为自监督学习重构去噪扩散模型
tzc_fly
生成式AI学习人工智能
在这项研究中,作者检验了最初用于图像生成的去噪扩散模型(DDM)的表示学习能力。其理念是解构DDM,逐渐将其转化为经典的去噪自动编码器(DAE)。这一解构过程让大家能够探索现代DDM的各个组成部分如何影响自监督的表征。观察到,只有极少数现代组件对学习好的表征至关重要,而其他许多组件则不重要。研究最终得出了一种高度简化的方法,在很大程度上类似于经典的DAE。来自:DeconstructingDeno
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f