• 大小: 225KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Python
  • 标签:

资源简介

基于VGG19的图像风格迁移,如果没有vgg-19文件 运行utils代码是会下载。 在styles文件夹中选择更改要迁移的图,包含了风格图片,内容图片替换成自己要进行操作的图片即可。是可以直接运行跑通的。有疑问的话可以留言询问。

资源截图

代码片段和文件信息

import numpy as np
import scipy.io
import tensorflow as tf
import utils

# VGG-19 parameters file
VGG_DOWNLOAD_link = “http://www.vlfeat.org/matconvnet/models/imagenet-vgg-verydeep-19.mat“
VGG_FILENAME = “imagenet-vgg-verydeep-19.mat“
EXPECTED_BYTES = 534904783  # 文件大小


class VGG(object):
    def __init__(self input_img):
        # 下载文件
        utils.download(VGG_DOWNLOAD_link VGG_FILENAME EXPECTED_BYTES)
        # 加载文件
        self.vgg_layers = scipy.io.loadmat(VGG_FILENAME)[“layers“]
        self.input_img = input_img
        # VGG在处理图像时候会将图片进行mean-center,所以我们首先要计算RGB三个channel上的mean
        self.mean_pixels = np.array([123.68 116.779 103.939]).reshape((1 1 1 3))

    def _weights(self layer_idx expected_layer_name):
        “““
        获取指定layer层的pre-trained权重

        :param layer_idx: VGG中的layer id
        :param expected_layer_name: 当前layer命名
        :return: pre-trained权重W和b
        “““
        W = self.vgg_layers[0][layer_idx][0][0][2][0][0]
        b = self.vgg_layers[0][layer_idx][0][0][2][0][1]
        # 当前层的名称
        layer_name = self.vgg_layers[0][layer_idx][0][0][0][0]
        assert layer_name == expected_layer_name
        print(“layer name error!“)

        return W b.reshape(b.size)

    def conv2d_relu(self prev_layer layer_idx layer_name):
        “““
        采用relu作为激活函数的卷积层

        :param prev_layer: 前一层网络
        :param layer_idx: VGG中的layer id
        :param layer_name: 当前layer命名
        “““
        with tf.variable_scope(layer_name):
            # 获取当前权重(numpy格式)
            W b = self._weights(layer_idx layer_name)
            # 将权重转化为tensor(由于我们不需要重新训练VGG的权重,因此初始化为常数)
            W = tf.constant(W name=“weights“)
            b = tf.constant(b name=“bias“)
            # 卷积操作
            conv2d = tf.nn.conv2d(input=prev_layer
                                  filter=W
                                  strides=[1 1 1 1]
                                  padding=“SAME“)
            # 激活
            out = tf.nn.relu(conv2d + b)
        setattr(self layer_name out)

    def avgpool(self prev_layer layer_name):
        #“““
        #average pooling层(这里参考了原论文中提到了avg-pooling比max-pooling效果好,所以采用avg-pooling)

       # :param prev_layer: 前一层网络(卷积层)
        #:param layer_name: 当前layer命名
        #“““
        with tf.variable_scope(layer_name):
            # average pooling
            out = tf.nn.avg_pool(value=prev_layer
                                 ksize=[1 2 2 1]
                                 strides=[1 2 2 1]
                                 padding=“SAME“)

        setattr(self layer_name out)

    def load(self):
        “““
        加载pre-trained的数据
        “““
        self.conv2d_relu(self.input_img 0 “conv1_1“)
        self.conv2d_relu(self.conv1_1 2 “conv1_2“)
        self.avgpool(self.conv1_2 “avgpool1“)
        self.conv2d_relu(self.avgpool1 5 “conv2_1“)
        self.conv2d_relu(self.c

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-07-26 21:54  图像风格迁移 Python vgg\
     文件        4227  2019-07-09 13:08  图像风格迁移 Python vgg\load_vgg.py
     目录           0  2019-07-26 21:53  图像风格迁移 Python vgg\style\
     目录           0  2019-07-26 21:55  图像风格迁移 Python vgg\style\.ipynb_checkpoints\
     文件       19875  2019-07-09 19:24  图像风格迁移 Python vgg\style\resized_fugu.jpg
     文件       31984  2019-07-09 15:22  图像风格迁移 Python vgg\style\resized_guernica.jpg
     文件       33499  2019-07-09 21:17  图像风格迁移 Python vgg\style\resized_harlequin.jpg
     文件       57785  2019-07-09 15:04  图像风格迁移 Python vgg\style\resized_pattern.jpg
     文件       34430  2019-07-09 13:26  图像风格迁移 Python vgg\style\resized_starry_night.jpg
     文件       23973  2019-07-09 17:03  图像风格迁移 Python vgg\style\resized_sumiao.jpg
     文件       22993  2019-07-09 14:52  图像风格迁移 Python vgg\style\resized_white.jpg
     文件        8386  2019-07-11 18:56  图像风格迁移 Python vgg\styles.py

评论

共有 条评论

相关资源