当前位置:   article > 正文

CVAE(条件自编码) Condition GAN (条件GAN) 和 VAE-GAN模型之间的区别之相关文件_conditional gan-vae

conditional gan-vae

第一个文件是用于定义网络中需要使用的各种参数关于卷积和反置卷积相关的图像

 

详细信息可以参考github上的DCGAN中如何设置模型

 

  1. import math
  2. import numpy as np
  3. import tensorflow as tf
  4. from tensorflow.python.framework import ops
  5. from utils import *
  6. if "concat_v2" in dir(tf):
  7. def concat(tensors, axis, *args, **kwargs):
  8. return tf.concat_v2(tensors, axis, *args, **kwargs)
  9. else:
  10. def concat(tensors, axis, *args, **kwargs):
  11. return tf.concat(tensors, axis, *args, **kwargs)
  12. def bn(x, is_training, scope):
  13. return tf.contrib.layers.batch_norm(x,
  14. decay=0.9,
  15. updates_collections=None,
  16. epsilon=1e-5,
  17. scale=True,
  18. is_training=is_training,
  19. scope=scope)
  20. def conv_out_size_same(size, stride):
  21. return int(math.ceil(float(size) / float(stride)))
  22. def conv_cond_concat(x, y):
  23. """Concatenate conditioning vector on feature map axis."""
  24. x_shapes = x.get_shape()
  25. y_shapes = y.get_shape()
  26. return concat([x, y*tf.ones([x_shapes[0], x_shapes[1], x_shapes[2], y_shapes[3]])], 3)
  27. def conv2d(input_, output_dim, k_h=5, k_w=5, d_h=2, d_w=2, stddev=0.02, name="conv2d"):
  28. with tf.variable_scope(name):
  29. w = tf.get_variable('w', [k_h, k_w, input_.get_shape()[-1], output_dim],
  30. initializer=tf.truncated_normal_initializer(stddev=stddev))
  31. conv = tf.nn.conv2d(input_, w, strides=[1, d_h, d_w, 1], padding='SAME')
  32. biases = tf.get_variable('biases', [output_dim], initializer=tf.constant_initializer(0.0))
  33. conv = tf.reshape(tf.nn.bias_add(conv, biases), conv.get_shape())
  34. return conv
  35. def deconv2d(input_, output_shape, k_h=5, k_w=5, d_h=2, d_w=2, name="deconv2d", stddev=0.02, with_w=False):
  36. with tf.variable_scope(name):
  37. # filter : [height, width, output_channels, in_channels]
  38. w = tf.get_variable('w', [k_h, k_w, output_shape[-1], input_.get_shape()[-1]],
  39. initializer=tf.random_normal_initializer(stddev=stddev))
  40. try:
  41. deconv = tf.nn.conv2d_transpose(input_, w, output_shape=output_shape, strides=[1, d_h, d_w, 1])
  42. # Support for verisons of TensorFlow before 0.7.0
  43. except AttributeError:
  44. deconv = tf.nn.deconv2d(input_, w, output_shape=output_shape, strides=[1, d_h, d_w, 1])
  45. biases = tf.get_variable('biases', [output_shape[-1]], initializer=tf.constant_initializer(0.0))
  46. deconv = tf.reshape(tf.nn.bias_add(deconv, biases), deconv.get_shape())
  47. if with_w:
  48. return deconv, w, biases
  49. else:
  50. return deconv
  51. def lrelu(x, leak=0.2, name="lrelu"):
  52. return tf.maximum(x, leak*x)
  53. def linear(input_, output_size, scope=None, stddev=0.02, bias_start=0.0, with_w=False):
  54. shape = input_.get_shape().as_list()
  55. with tf.variable_scope(scope or "Linear"):
  56. matrix = tf.get_variable("Matrix", [shape[1], output_size], tf.float32,
  57. tf.random_normal_initializer(stddev=stddev))
  58. bias = tf.get_variable("bias", [output_size],
  59. initializer=tf.constant_initializer(bias_start))
  60. if with_w:
  61. return tf.matmul(input_, matrix) + bias, matrix, bias
  62. else:
  63. return tf.matmul(input_, matrix) + bias

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41001
推荐阅读
  

闽ICP备14008679号