当前位置: 首页 > news >正文

cs20_8-1

1. VAE

  1. lecture link: https://docs.google.com/presentation/d/1VSNlkGcR-b39tMcuREjzZdhYOPvoZudpcbuNlf5hOIM/edit#slide=id.g334db163d4_0_41
  2. todo, 我打印了个pdf, tutorial to VAE

2. tensorflow distribution(并不是分布式!而是概率分布)

  1. PPL(probabilities program language)
    • https://www.zhihu.com/question/59442141
    • http://webppl.org/ (体验下PPL)
  2. tensorflow distribution
    • https://zhuanlan.zhihu.com/p/36032114
    • https://zhuanlan.zhihu.com/p/35782672
    • The TensorFlow Distributions library has moved to TensorFlow Probability

3. VAE in Tensorflow

  1. 如下面测试代码

    import os
    
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    #
    import tensorflow as tf
    import numpy as np
    import scipy.misc
    
    def make_prior(code_size=2):
      mean, stddev = tf.zeros([code_size]), tf.ones([code_size])
      return tfd.MultivariateNormalDiag(mean, stddev)
    
    def make_encoder(images, code_size=2):
      images = tf.layers.flatten(images)
      hidden = tf.layers.dense(images, 100, tf.nn.relu)
      mean = tf.layers.dense(hidden, code_size)
      stddev = tf.layers.dense(hidden, code_size, tf.nn.softplus)
      return tfd.MultivariateNormalDiag(mean, stddev)
    
    def make_decoder(code, data_shape=[28, 28]):
      hidden = tf.layers.dense(code, 100, tf.nn.relu)
      logit = tf.layers.dense(hidden, np.prod(data_shape))
      logit = tf.reshape(logit, [-1] + data_shape)
      return tfd.Independent(tfd.Bernoulli(logit), len(data_shape))
    
    tfd = tf.contrib.distributions
    images = tf.placeholder(tf.float32, [None, 28, 28])
    prior = make_prior()
    posterior = make_encoder(images)
    dist = make_decoder(posterior.sample())
    elbo = dist.log_prob(images) - tfd.kl_divergence(posterior, prior)
    optimize = tf.train.AdamOptimizer().minimize(-elbo)
    samples = make_decoder(prior.sample(10)).mean()  # For visualization
    print("samples-shape: ", tf.shape(samples))
    print("samples: : ", samples)
    # 转换shape 为 28x28xC //现在是 10x28x28,我要换成 28x28x10,利用 tf.transpose
    samples = tf.transpose(samples, [1,2,0])
    samples = samples[:][:][0] # 同理,使用 for 可以找出其他剩余9张图片
    print("samples-1: : ", samples)
    
    with tf.Session() as sess:
        sess.run(tf.initialize_all_variables())
        sess.run(tf.global_variables_initializer())
        img_numpy = samples.eval(session=sess) # tensor to numpy_arr
        print(type(img_numpy))
    scipy.misc.imsave('VAE_TF.png', img_numpy) # numpy_arr to image
    
    
    # The tfd.Independent(dist, 2) tells TensorFlow to treat the two innermost dimensions as
    #  data dimensions rather than batch dimensions
    # This means dist.log_prob(images) returns
    #  a number per images rather than per pixel
    # As the name tfd.Independent() says,
    # it's just summing the pixel log probabilities

4. BNN in Tensorflow

  1. 如下示例代码:

    import os
    
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    #
    import tensorflow as tf
    import numpy as np
    
    # Byase NN
    
    def define_network(images, num_classes=10):
      mean = tf.get_variable('mean', [28 * 28, num_classes])
      stddev = tf.get_variable('stddev', [28 * 28, num_classes])
      prior = tfd.MultivariateNormalDiag(
          tf.zeros_like(mean), tf.ones_like(stddev))
      posterior = tfd.MultivariateNormalDiag(mean, tf.nn.softplus(stddev))
      bias = tf.get_variable('bias', [num_classes])  # Or Bayesian, too
      logit = tf.nn.relu(tf.matmul(posterior.sample(), images) + bias)
      return tfd.Categorical(logit), posterior, prior
    
    tfd = tf.contrib.distributions
    images = None # to do
    label = None # to do
    
    dist, posterior, prior = define_network(images)
    elbo = (tf.reduce_mean(dist.log_prob(label)) -
            tf.reduce_mean(tfd.kl_divergence(posterior, prior)))

转载于:https://www.cnblogs.com/LS1314/p/10371229.html

相关文章:

  • 恢复Linux系统里被删除的 Ext3文件
  • Python基础之函数
  • Picturing virtual functions
  • C# 预处理指令
  • 安装Asp.net 2.0服务器出现Server Application Unavailabl --zt
  • 解决FirewallD is not running问题
  • 使用Collectd + InfluxDB + Grafana进行JMX监控
  • 通过自己的项目实际经验,阐述为什么“恶心玩技术”?玩Java技术的教训(一)...
  • centos 生成网卡UUID
  • repo源及yum的常用方法
  • Python Django 初试手记
  • 线性表-顺序存储
  • c# xml读写 操作 实例
  • 设计 MySQL 数据表的时候一般都有一列为自增 ID,这样设计原因是什么,有什么好处?...
  • 买盘+卖盘≠成交量
  • php的引用
  • ComponentOne 2017 V2版本正式发布
  • dva中组件的懒加载
  • Elasticsearch 参考指南(升级前重新索引)
  • Git的一些常用操作
  • js ES6 求数组的交集,并集,还有差集
  • LeetCode29.两数相除 JavaScript
  • PHP CLI应用的调试原理
  • socket.io+express实现聊天室的思考(三)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 经典排序算法及其 Java 实现
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 说说动画卡顿的解决方案
  • 大数据全解:定义、价值及挑战
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​低代码平台的核心价值与优势
  • # Panda3d 碰撞检测系统介绍
  • #mysql 8.0 踩坑日记
  • ${ }的特别功能
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (02)vite环境变量配置
  • (Java)【深基9.例1】选举学生会
  • (zhuan) 一些RL的文献(及笔记)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (十六)一篇文章学会Java的常用API
  • (四)linux文件内容查看
  • (万字长文)Spring的核心知识尽揽其中
  • (一)kafka实战——kafka源码编译启动
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .Mobi域名介绍
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET6 命令行启动及发布单个Exe文件
  • .net中生成excel后调整宽度