Tensorflow 函数学习笔记

## tf.Variable(??)    创建tf变量

## tf.matmul(w,x)       矩阵乘法

w = tf.Variable([[0.5,1.0]])
x = tf.Variable([[2.0],[1.0]])
y = tf.matmul(w, x)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init_op)
    print (y.eval())   #tf中显示变量值需加.eval
>> [[ 2.]]

## tf.zeros(shape, dtype) 创建全零阵

tf.zeros([3, 4], int32) ==> [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

## tf.zeros_like(tensor)   创建矩阵tensor同维的全零阵

# ‘tensor‘ is [[1, 2, 3], [4, 5, 6]]
tf.zeros_like(tensor) ==> [[0, 0, 0], [0, 0, 0]]

## tf.ones(shape,dtype) 创建全1阵

tf.ones([2, 3], int32) ==> [[1, 1, 1], [1, 1, 1]]

## tf.ones_like(tensor) 创建tensor同维的全1阵

# ‘tensor‘ is [[1, 2, 3], [4, 5, 6]]
tf.ones_like(tensor) ==> [[1, 1, 1], [1, 1, 1]]

##  tf.constant(? ?)      创建常量

# Constant 1-D Tensor populated with value list.
tensor = tf.constant([1, 2, 3, 4, 5, 6, 7]) => [1 2 3 4 5 6 7]
# Constant 2-D tensor populated with scalar value -1.
tensor = tf.constant(-1.0, shape=[2, 3]) => [[-1. -1. -1.][-1. -1. -1.]]

## tf.linspace (10.0, 12.0, 3, name="linspace")  创建等差数列

tf.linspace(10.0, 12.0, 3, name="linspace") => [ 10.0  11.0  12.0]

## tf.range(start, limit, delta)      创建等差数列start->limit  步长delta

tf.range(start, limit, delta) ==> [3, 6, 9, 12, 15]

## tf.random_uniform(shape[], -1.0, 1.0) 创建[-1,1]内的随机数矩阵

## tf.random_normal(shape, mean=-1, stddev=4) 创建随机数矩阵 服从mean=-1,stddev=4的高斯分布

## tf.random_shuffle(c)    洗牌,打乱矩阵c

norm = tf.random_normal([2, 3], mean=-1, stddev=4)

# Shuffle the first dimension of a tensor
c = tf.constant([[1, 2], [3, 4], [5, 6]])
shuff = tf.random_shuffle(c)

# Each time we run these ops, different results are generated
sess = tf.Session()
print (sess.run(norm))
print (sess.run(shuff))
>>[[-0.30886292  3.11809683  3.29861784]
 [-7.09597015 -1.89811802  1.75282788]]
[[3 4]
 [5 6]
 [1 2]]

## tf.add(a,b)  创建a+b的计算图

## tf.assign(a, b) 创建a=b的计算图

state = tf.Variable(0)
new_value = tf.add(state, tf.constant(1))
update = tf.assign(state, new_value)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(state))
    for _ in range(3):
        sess.run(update)
        print(sess.run(state))
>>0
1
2
3

## tf.train.Saver() 保存训练模型

#tf.train.Saver
w = tf.Variable([[0.5,1.0]])
x = tf.Variable([[2.0],[1.0]])
y = tf.matmul(w, x)
init_op = tf.global_variables_initializer()
saver = tf.train.Saver()
with tf.Session() as sess:
    sess.run(init_op)
# Do some work with the model.
# Save the variables to disk.
    save_path = saver.save(sess, "C://tensorflow//model//test")
    print ("Model saved in file: ", save_path)
>>Model saved in file:  C://tensorflow//model//test

## tf.convert_to_tensor(a) 将a转换为tensorflow张量

import numpy as np
a = np.zeros((3,3))
ta = tf.convert_to_tensor(a)
with tf.Session() as sess:
     print(sess.run(ta))
>>[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

## tf.placeholder(dtype, shape=None, name=None) 创建占位符

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1, input2)
with tf.Session() as sess:
    print(sess.run([output], feed_dict={input1:[7.], input2:[2.]}))    #需要以字典方式赋值
》[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

 

## tf.square(a)  求a的平方

## tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)  求平均值

## tf.reduce_max(input_tensor, reduction_indices=None, keep_dims=False, name=None) 求最大值

## tf.reduce_sum(input_tensor, reduction_indices=None, keep_dims=False, name=None) 求和

参数1--input_tensor:待求值的tensor。

参数2--reduction_indices:在哪一维上求解。

##  tf.boolean_mask(a,b)

    tensorflow 里的一个函数,在做目标检测(YOLO)时常常用到。

其中b一般是bool型的n维向量,若a.shape=[3,3,3]    b.shape=[3,3]

则  tf.boolean_mask(a,b) 将使a (m维)矩阵仅保留与b中“True”元素同下标的部分,并将结果展开到m-1维。

例:应用在YOLO算法中返回所有检测到的各类目标(车辆、行人、交通标志等)的位置信息(bx,by,bh,bw)

a = np.random.randn(3, 3,3)
b = np.max(a,-1)
c=  b >0.5
print("a="+str(a))
print("b="+str(b))
print("c="+str(c))
with tf.Session() as sess:
    d=tf.boolean_mask(a,c)
print("d="+str(d.eval(session=sess)))
>>
a=[[[-1.25508127  1.76972539  0.21302597]
  [-0.2757053  -0.28133549 -0.50394556]
  [-0.70784415  0.52658374 -3.04217963]]

 [[ 0.63942957 -0.76669861 -0.2002611 ]
  [-0.38026374  0.42007134 -1.08306957]
  [ 0.30786828  1.80906798 -0.44145949]]

 [[ 0.22965498 -0.23677034  0.24160667]
  [ 0.3967085   1.70004822 -0.19343556]
  [ 0.18405488 -0.95646895 -0.5863234 ]]]
b=[[ 1.76972539 -0.2757053   0.52658374]
 [ 0.63942957  0.42007134  1.80906798]
 [ 0.24160667  1.70004822  0.18405488]]
c=[[ True False  True]
 [ True False  True]
 [False  True False]]
d=[[-1.25508127  1.76972539  0.21302597]
 [-0.70784415  0.52658374 -3.04217963]
 [ 0.63942957 -0.76669861 -0.2002611 ]
 [ 0.30786828  1.80906798 -0.44145949]
 [ 0.3967085   1.70004822 -0.19343556]]

  

## tf.train.GradientDescentOptimizer(learining_rate).minimize(loss)   梯度下降优化器

learning_rate = 学习率

loss = 系统成本函数

## tf.global_variables_initializer() 全局变量初始函数

## tf.train.SummaryWriter("./tmp", sess.graph) 生成tensorflow 可视化图表并保存到路径

时间: 2024-10-08 09:21:19

Tensorflow 函数学习笔记的相关文章

C++运算符重载为友元函数学习笔记

初探C++运算符重载学习笔记 在上面那篇博客中,写了将运算符重载为普通函数或类的成员函数这两种情况. 下面的两种情况发生,则我们需要将运算符重载为类的友元函数 <1>成员函数不能满足要求 <2>普通函数又不能访问类的私有成员时 举例说明: class Complex{ double real, imag; public: Complex(double r, double i):real(r), imag(i){ }; Complex operator+(double r); };

contiki-main.c 中的process系列函数学习笔记 &lt;contiki学习笔记之六&gt;

说明:本文依然依赖于 contiki/platform/native/contiki-main.c 文件. ------------------------------------------------------------------------------------------------------------------------------------- 根据上一个笔记里面添加的printf()语句的打印信息提示,hello world 打印是在执行了 1 autostart_

Swift2.0 函数学习笔记

最近又有点忙,忙着找工作,忙着适应这个新环境.现在好了,上班两周周了,也适应过来了,又有时间安安静静的就行我们前面的学习了.今天这篇笔记,记录的就是函数的使用.下面这些代码基本上是理清楚了函数的额使用,但还有一块“闭包”的内容,后面我们单独写一块出来. // 形参传递的过程中,由于没有写外部形参名称,第一个形参的外部形参名字可以省略,第二的的不可以省略 let zxtest = testString(1, zc: 2) print(zxtest) // 返回值是一个元组的形式返回到,参数的传递和

MYSQL存储过程和函数学习笔记

学至Tarena金牌讲师何山,金色晨曦科技公司技术总监沙利穆课程笔记的综合. 1. 什么是存储过程和函数 将SQL语句放入一个集合里,然后直接调用存储过程和函数来执行已经定义好的SQL语句,通过存储过程和函数,可以避免开发人员重复编写相同的SQL语句. MYSQL存储过程和函数是保存在服务器中,在服务器中存储和执行,可以减少客户端和服务器端之间数据传输的消耗. 存储过程就是一组已经保存在数据库中的语句,并且可以随时地调用. 存储过程允许标准组件式编程,存储过程在被创建以后可以在程序中被多次调用而

函数(学习笔记)

函数(存储函数)也是一种较为方便的存储结构,用户定义函数可以被SQL语句或者PL/SQL直接调,函数和过程最大的区别在于,函数可以有返回值,而过程只能依靠OUT 或者IN OUT返回数据定义函数语法:CREATE [OR REPLACE] FUNCTION 函数([参数,...]])RETURN 返回值类型 [AUTHID [DEFINER | CURRENT_USER]] AS || IS [PRAGMA AUTONOMOUS_TRANSACTION;] 声明部分;BEGIN 程序部分; [R

pythonの函数学习笔记(一)

函数是可以实现一些特定功能的小方法或小程序定义函数function的方法:def function_name(arg1,arg2[,...]): statement [return value]注意事项:1.def开头,代表定义函数,def和函数名中间要敲一个空格:2.返回值不是必须的,如果没有renturn语句,则默认返回值None:3.函数名必须以下划线或字母开头,可以包含任意字母.数字或下划线的组合,区分大小写且不能是保留字: py使用名称空间的概念存储对象,这个名称空间就是对象作用的区域

generator函数学习笔记

一.基本概念 Generator函数是一种可以暂停执行,返回iterator对象的函数,yield是暂停标识 function* gen(){ yield 1; yield 2; } Generator函数在function后面有一个*,内部有yield语句 function* gen(){ yield 1; yield 2; return '1' } let g = gen(); //调用Generator函数返回遍历器对象 console.log(g.next())//{"value&quo

C++11 virtual函数学习笔记

#include<iostream> #include<string> using namespace std; class Base { public: Base(){} ~Base(){} public: virtual void f1(int x){ cout << "baseclass: f1() " << x << endl; } virtual void f2()final{ cout << "

PHP 函数学习笔记

一. 什么是函数为什么要用函数 函数是一段被命名的,完成特定的任务的代码.函数可以节省编译时间,无论调用多少次 都仅在所在页面编译一次,同时易维护,在易维护的同时也提高了代码的可读性. 二. 调用函数 1 $somevalue = function_name( [parameter, ...]); 三. 定义函数 1 function [&] function_name( [parameter[, ...]]){ 2 statment list 3 } 语句里面可以是HTML内容,甚至可以是一个