#-*- coding:utf-8 -*-
#Tensorflow的嵌入Layer
import numpy as np
import tensorflow as tf
sess=tf.Session() #创建占位符和数据
my_array=np.array([[1.,3.,5.,7.,9.],
[-2.,0.,2.,4.,6.],
[-6,-3,0.,3.,6.]])
x_vars=np.array([my_array,my_array+1])
x_data=tf.placeholder(tf.float32,shape=(3,5))
#创建矩阵乘法和加法中要用到的常用矩阵
m1=tf.constant([[1.],[0.],[-1.],[2.],[4.]])
m2=tf.constant([[2.]])
a1=tf.constant([[10.]]) #声明操作,表示成计算图
prod1=tf.matmul(x_data,m1)
print sess.run(prod1,feed_dict={x_data:my_array})
print '-'*80
prod2=tf.matmul(prod1,m2)
print sess.run(prod2,feed_dict={x_data:my_array})
print '-'*80
add1=tf.add(prod2,a1)
print sess.run(add1,feed_dict={x_data:my_array})
print '-'*80 #tensorboard --logdir=/path/to/log-directory
#运行上面的代码,可以用tensorboard可视化,最好利用chrome,Firefox好像不怎么支持
for x_var in x_vars:
writer = tf.summary.FileWriter('./graphs', sess.graph)
print sess.run(add1,feed_dict={x_data:x_var})
writer.close()
#-*- coding:utf-8 -*-
#Tensorflow的多层Layer
import numpy as np
import tensorflow as tf
sess=tf.Session() #通过numpy创建2D图像,4x4像素
x_shape=[1,4,4,1]
x_val=np.random.uniform(size=x_shape) #创建占位符
x_data=tf.placeholder(tf.float32,shape=x_shape) #创建滑动窗口
my_filter=tf.constant(0.25,shape=[2,2,1,1])
my_strides=[1,2,2,1]
mov_avg_layer=tf.nn.conv2d(x_data,my_filter,my_strides,padding='SAME',name='Moving_Avg_Window') #自定义Layer,操作滑动窗口平均的2x2的返回值
def custom_layer(input_matrix):
input_matrix_sqeezed=tf.squeeze(input_matrix)
A=tf.constant([[1.,2.],[-1.,3.]])
b=tf.constant(1.,shape=[2,2])
temp1=tf.matmul(A,input_matrix_sqeezed)#
temp=tf.add(temp1,b)# Ax+b
return tf.sigmoid(temp) with tf.name_scope('Custom_Layer') as scope:
custom_layer1=custom_layer(mov_avg_layer) print sess.run(custom_layer1,feed_dict={x_data:x_val})


tensorflow进阶篇-3的更多相关文章

  1. tensorflow进阶篇-5(反向传播2)

    上面是一个简单的回归算法,下面是一个简单的二分值分类算法.从两个正态分布(N(-1,1)和N(3,1))生成100个数.所有从正态分布N(-1,1)生成的数据目标0:从正态分布N(3,1)生成的数据标 ...

  2. tensorflow进阶篇-5(反向传播1)

    这里将讲解tensorflow是如何通过计算图来更新变量和最小化损失函数来反向传播误差的:这步将通过声明优化函数来实现.一旦声明好优化函数,tensorflow将通过它在所有的计算图中解决反向传播的项 ...

  3. tensorflow进阶篇-4(损失函数2)

    Hinge损失函数主要用来评估支持向量机算法,但有时也用来评估神经网络算法.下面的示例中是计算两个目标类(-1,1)之间的损失.下面的代码中,使用目标值1,所以预测值离1越近,损失函数值越小: # U ...

  4. tensorflow进阶篇-4(损失函数1)

    L2正则损失函数(即欧拉损失函数),L2正则损失函数是预测值与目标函数差值的平方和.L2正则损失函数是非常有用的损失函数,因为它在目标值附近有更好的曲度,并且离目标越近收敛越慢: # L = (pre ...

  5. tensorflow进阶篇-4(损失函数3)

    Softmax交叉熵损失函数(Softmax cross-entropy loss)是作用于非归一化的输出结果只针对单个目标分类的计算损失.通过softmax函数将输出结果转化成概率分布,然后计算真值 ...

  6. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

  7. idea 插件的使用 进阶篇

    CSDN 2016博客之星评选结果公布    [系列直播]零基础学习微信小程序!      "我的2016"主题征文活动   博客的神秘功能 idea 插件的使用 进阶篇(个人收集 ...

  8. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

  9. windows系统快捷操作の进阶篇

    上次介绍了windows系统上一些自带的常用快捷键,有些确实很方便,也满足了我们的一部分需求.但是我们追求效率的步伐怎会止步于此?这一次我将会进一步介绍windows上提升效率的方法. 一:运行 打开 ...

随机推荐

  1. python 编码方式大全 fr = open(filename_r,encoding='cp852')

    7.8.3. Standard Encodings Python comes with a number of codecs built-in, either implemented as C fun ...

  2. MemCahced 使用及常见问题说明

    前言 本文档是针对Memcached使用及常见问题的说明. 一.获取 1. MemCached 官网:http://www.memcached.org 下载:http://memcached.org/ ...

  3. MapGIS Mobile开发

    1. 先将Android开发环境配置好(包括Java + Eclipse + Android SDK) 2. 加载API类库(运行MapGIS 10 AndroidSDK.exe可以加载Mobile框 ...

  4. java分层

    一.为什么要分层. 以前的我们,写代码的时候,都在main()方法中,出现了错误,就慢慢调试,这样浪费了我们很长的时间,而我们程序员的时间是非常宝贵的 但是当我们使用分层架构的时候,就可以清晰明确的知 ...

  5. Latex中Matlab代码的环境

    需要用到listings宏包 使用方法: 导言区\usepackage{listings}\lstset{language=Matlab}      %代码语言使用的是matlab\lstset{br ...

  6. LoadRunner 技巧之 IP欺骗 (推荐)

    IP欺骗也是也loadrunner自带的一个非常有用的功能. 需要使用ip欺骗的原因:1.当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量, ...

  7. java 发架包

    // 完整发布流程 clean compile deploy install -U -DskipTests // 把架包安装到本地,跳过测试 install -Dmaven.test.skip=tru ...

  8. 单线程任务 Task.Factory.StartNew 封装

    代码: using log4net; using SunCreate.CombatPlatform.Security; using System; using System.Collections.G ...

  9. 在sqlite中,如何删除字段? how to drop a column in sqlite

    在sqlite中可以使用ALTER TABLE语法对表结构进行修改,从官方的文档说明中,语法如下图: 从图中可以看出,ALTER TABLE仅仅支持表名重命名,添加字段,却没有删除字段的方法.那么该如 ...

  10. 程序媛计划——mysql基本操作

    本文适用于mac 在官网上下载community 版mysql,选择dmy这种.在终端中安装好mysql. #进入mysql /usr/local/mysql/bin/mysql -uroot -p ...