prisma风格总结篇

最近很火的一款软件,prisma,可以实现将自己的照片和世界名画进行融合,生成名画风格的照片,闹腾的是,火火火火火,可以说,一半人在玩小精灵,另一半人则是玩prisma。

这款软件就是根据Image StyleTransfer Using Convolutional Neural Networks,这篇2016年的cvpr开发的。

同样的,这篇文章的作者还在2015年的cvpr上发过A Neural Algorithm of Artistic Style,雅虎的一哥们对其进行了实现,效果还是很赞的。

 

论文思想:

输入一张风格style照片,一张待处理照片,即内容(content)照片,然后经过VGG19的一系列的卷基层,分别提取出style和content,然后不断的迭代,使得由style和content两者组成的损失达到最小,其中,aerfa,beita为两个损失所占的权值。p为生成的图像,a为style图像,x为content图像。

 

具体到每个损失的计算,求导,这里就不在赘述,可以阅读论文进行研究。

 

安装步骤:

 

 

 

安装完caffe后执行如下的步骤,

cd  caffe-root/examples/
git clone https://github.com/fzliu/style-transfer.git
cd style-transfer
touch run_style.sh
vim run_style.sh
输入如下信息,
python style.py -s images/style/cy.jpg\
 -c images/content/11.jpg\
 -m vgg19 \
-g 0
然后,
./scripts/download_models.sh

 

 

 

完毕后,执行,

 

./run_style.sh

 

然后就可以静静地等待了。

sh脚本中的输入格式如下,

python style.py -s <style_image> -c<content_image> -m <model_name> -g 0

<model_name> vgg16vgg19googlenetcaffenet

错误解决:

 

 

sudo pip install progressbar

 

 

 

运行效果:

运行效果真的很神奇的可以将各种名画风格都融合进去,就是处理速度有点慢,可能和迭代次数的设置有关系吧。

左图为日常生活照,中间为挪威画家爱德华·蒙克的呐喊,右面为处理后的结果。

 

程序链接:

https://github.com/fzliu/style-transfer

 

03-14
### Prisma ORM 数据库工具使用指南 #### 什么是 PrismaPrisma 是一种现代化的数据库访问工具,专注于简化开发人员与数据库之间的交互过程。通过提供高效的、类型安全的数据访问方式,Prisma 能够显著提升开发效率和代码质量[^1]。 #### 主要功能特性 Prisma 提供了一系列强大的功能来帮助开发者更轻松地管理数据库操作: - **跨平台支持**:兼容多种主流数据库,如 PostgreSQL、MySQL 和 MongoDB 等[^3]。 - **类型安全性**:内置强类型的查询构建器,能够在编译阶段捕获潜在错误。 - **GraphQL 集成**:原生支持 GraphQL 查询解析,便于构建实时性和灵活性兼备的应用程序。 - **RESTful 支持**:除了 GraphQL 外,还允许创建传统的 RESTful API 接口。 #### 如何安装 Prisma? 以下是针对不同环境下的基本安装指导: ##### 对于 JavaScript 或 TypeScript 用户 可以利用 npm 来引入官方包 `prisma` 及其客户端依赖项 `@prisma/client`: ```bash npm install prisma @prisma/client --save-dev ``` 随后初始化配置文件并通过 CLI 工具完成设置流程: ```bash npx prisma init ``` 这一步会生成必要的目录结构以及 schema 文件(通常位于项目的根路径下命名为 `schema.prisma`)。编辑该文件定义模型实体及其关联关系即可。 ##### 面向 Go 开发者的选择 如果目标项目采用的是 Golang 编程语言,则可以选择第三方实现版本——即由 gosteebchen 维护的仓库 `prisma-client-go`[^2]。此方案同样覆盖了丰富的数据库适配选项,并保持良好的性能表现。 克隆源码至本地工作区后按照文档指示执行相应命令以导入所需模块;具体步骤可参照链接中的 README.md 描述部分获取更多细节说明。 #### 创建首个 Schema 并同步到实际存储介质上 无论选用哪种编程范式,在正式运行之前都需要先设计好对应的表单布局描述信息。下面展示了一个简单的例子用来表示博客文章与其作者之间的一对多联系形式: ```prisma model User { id Int @id @default(autoincrement()) name String? posts Post[] } model Post { id Int @id @default(autoincrement()) title String content String? authorId Int author User? @relation(fields: [authorId], references: [id]) } ``` 上述片段展示了两个相互绑定的对象类别:“User”代表个人资料,“Post”则记录每文章详情。其中外键字段 `authorId` 将两方紧密相连起来形成父子级联效果。 接着调用迁移指令让这些改动生效反映到真实世界里的持久化单元里去吧! ```bash npx prisma migrate dev --name init ``` 至此为止我们已经成功搭建起了基础框架体系架构雏形! #### 实际应用场景举例 假设现在有一个需求是要找出某个特定用户的全部发表过的作品列表出来的话,那么就可以借助自动生成出来的 CRUD 方法非常方便快捷地达成目的啦~如下所示为一段伪代码演示如何做到这一点: ```javascript const { PrismaClient } = require('@prisma/client'); const prisma = new PrismaClient(); async function main() { const userWithPosts = await prisma.user.findUnique({ where: { id: 1 }, include: { posts: true } }); console.log(userWithPosts); } main() .catch(e => console.error(e)) .finally(async () => await prisma.$disconnect()); ``` 这段脚本首先实例化了一个新的 Prisma Client 连接池对象,之后再通过链式调用的方式指定查找条件参数(这里是依据主键编号定位某条记录),最后附加额外请求加载关联子集资源返回给前端显示处理。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值