张量、进程线程学习笔记

装量、进程线程学习笔记
张量的阶
阶 数学实例 python 例子
0 纯量 (只有大小) s=483
1 向量 (大小和方向) v=[1.1,2.2,3.3]
2 矩阵 (数据表) m=[[1,2,3],[4,5,6]]
3 3阶张量 (数据立体) t=[[[2],[4],[6]],[[3],[4],[5]],[[1],[2],[3]]]
n n阶张量

张量的数据类型

张量的动态形状和静态形状:在于有没有形成一个新的张量
静态形状:
创建一个张量,初始状态的形状
tf.Tensor.get_shape:获取静态数据
tf.Tensor.set_shape():更新Tensor对象的静态形状,通常由于在不能直接推断的情况下
动态形状
一种描述原始张量在执行过程中的一种形状(动态变化)
tf.reshape:创建一个具有不同动态形状的新张量
对于静态形状来说,一旦形状固定就不能在重新设置
对于动态性状可以创建一个新的张量,改变时一定注意元素数量要匹配,不能跨维度修改 1D–>1D 2D–>2D

张量的操作–生成张量
固定值张量
tf.zeros(shape,dtype=tf.float32,name=None)
创建所有元素为零的张量此操作返回一个dtype具有形状shape和所有元素设置为零的类型的张量
tf.zeros_like(tensor,dtype=tf.float32,name=None)
给tensor定单张量(),此操作返回张量tensor 与所有元素设置为零相同的类型和形状的张量
tf.ones(shape,dtype=tf.float32,name=None)
tf.constant(values,dtype=None,name=‘Const’)
创建一个常数张量

创建随机张量

正态分布(高斯分布)
平均值、标准差
tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)

#张量操作–张亮变换
改变类型
提供了改变张量中数值类型的函数
tf.string_to_number(string_tensor,out_type=None,name=None)
tf.to_double(x,name=‘ToDouble’)
tf.to_float(x,name=‘ToFloat’)
tf.to_int32(x,name=‘ToInt’)
tf.cast(x,dtype,name=None)#万能转换类型

切片与扩展
tf.concat(values,axis,name=‘concat’)
例如
a=tf.constant([1,2,3],[3,4,5])
b=tf.constant([3,5,7],[1,3,4])
tf.concat([a,b],axis=0,name=None)#axis=0按列合并,axis=0按行合并
tensorflow 中的API可以在一下网址中找到
https://www.tensorflow.org/versions/r1.0/api_guides/python/math_ops
https://tensorflow.google.cn/api_docs/python/tf/math

#变量
变量也是一种OP,是一种特殊的张量,能够进行持久化存储,他的值就是张量,默认被训练
变量的创建
tf.Variable(initial_value=None,name=None,trainable=True)
assign(value)
为变量分配一个新值
返回新值
eval(session=None)
计算并返回此变量的值
name属性表示变量的名字
1.变量OP能够进行持久化保存,普通张量op是不行的
2.当定义一个op的时候 ,一定要在会话中运行初始化
a=tf.constant([1,2,3,4,5,6])
var=tf.Variable(tf.random_normal([3,2],mean=0.0,stddev=1.0))
print(a,var)
#必须做一步全局初始化
init_op=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run([a,var]))

#tensorboard
程序图结构---->web界面
序列化文件
summary:摘要
tf.summary.FileWriter(’/tmp/tensorflow/summary/test/’,graph=)返回filewriter

线性回归:w1x1+w2x2+w3x3+…+w_nxn +bias
算法 策略 优化
线性回归 均方误差 梯度下降API
学习率
1.准备好1特征和1目标值 100[100,1】
y=x*0.7 + 0.8
2.建立模型 准备一个权重w,一个偏置b
y_predict=xw+b
3.求损失函数,误差
loss 均方误差 (y1-y1’)^2 + (y2-y2’)^2 + (y_100-y_100’)^2/100
4.梯度下降优化损失过程 指定学习率

矩阵相乘:(m行,n行)*(n行,1) (m行,1)+bias
矩阵运算:tf.matmul(x,w)
平方:tf.square(error)
均值:tf.reduce_mean(error)

梯度下降API
tf.train.GradientDescentOptimizer(learning_rate)
梯度下降优化
learning_rate :学习率,一般为
method :
minimize(loss)
return:梯度下降OP
线性回归模型代码:
import tensorflow as tf
def myregression():
‘’’

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值