深度有趣 | 22 天马行空的DeepDream

本文介绍了DeepDream的概念,展示了如何使用TensorFlow实现这一过程。通过最大化网络层的响应值来调整输入图片,创造出独特而奇幻的视觉效果。文章详细解释了原理,并展示不同层次和filter的优化结果,揭示了深度学习模型对图像的不同偏好。
摘要由CSDN通过智能技术生成

简介

介绍DeepDream的原理并用TensorFlow实现

效果

先来看一下DeepDream的效果,本来是这样一张图片

DeepDream处理之前的天空

经过DeepDream处理之后就有可能变成这样

DeepDream处理之后的天空

有点奇特和梦幻,也有点不明所以、精神污染

原理

大多时候我们是根据给定的数据和标签,去训练和调整网络的参数

不过也有时候,我们是固定网络的参数,根据某个损失函数调整输入数据,例如在图像风格迁移里,根据内容损失函数和风格损失函数调整合成的图片

对于常见的图片分类模型,输入一张图片,网络中的每个tensor会输出相应的响应值,值越大说明这个tensor越“喜欢”这张图片

比如输入一张狗的图片,网络中用于识别和分类狗的tensor就会输出较大的响应值

把优化目标设为最大化某个tensor的响应值,以此来调整输入图片,这就是DeepDream的原理

举例来说,为了满足一个喜欢狗的tensor,我们将原始图片中像狗的一些蛛丝马迹进行调整和放大,从而使得这一tensor的响应值更大

实现

加载库

# -*- coding: utf-8 -*-

import tensorflow as tf
import numpy as np
import cv2
from imageio import imread, imsave, mimsave
import matplotlib.pyplot as plt
%matplotlib inline
from scipy.ndimage.filters import gaussian_filter

加载图片分类模型,这里使用inception5h

layer_names = ['conv2d0', 'conv2d1', 'conv2d2', 
               'mixed3a', 'mixed3b', 'mixed4a', 'mixed4b', 'mixed4c', 'mixed4d', 'mixed4e',
               'mixed5a', 'mixed5b']

grap
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值