lstrip()方法

lstrip() 方法用于截掉字符串左边的空格或指定字符

str.lstrip([chars])    截掉指定的字符char

返回截掉指定字符的字符串

str = "     this is string example....wow!!!     ";
print( str.lstrip() );# this is string example....wow!!!
str = "88888888this is string example....wow!!!8888888";
print( str.lstrip('') ); # this is string example....wow!!!8888888

random.seed()

放一个改变随机数生成器的种子,每个seed()值对应着一个固定的随机操作(生成随机数、随机洗牌)

import random

random.seed ([x])

x :改变随机数生成器的种子seed。如果不设置,Python会帮你选择seed值。

import random

random.seed(10)    # 生成同一个随机数
print("带种子的随机数10: ", random.random())
# 带种子的随机数10: 0.57140259469 random.seed(10) # 生成同一个随机数
print("带种子的随机数10: ", random.random())
# 带种子的随机数10 10 : 0.57140259469

random.shuffle()

将序列的所有元素随机排序。

import random

random.shuffle(lit)

import random

lit = [20, 16, 10, 5]

random.shuffle(lit)
print("随机排序列表 : ", lit) # 随机排序列表 : [20, 10, 5, 16]

tf.cast()

tf.cast(x, dtype, name=None)

将x的数据格式转化成dtype,例如,原来x的数据格式是bool,那么将其转化成float以后,就能将其转化成 0 和 1 的序列

import tensorflow as tf

a = tf.Variable([1,0,0,1,1])
b = tf.cast(a,dtype=tf.bool)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run(b))
#[ True False False True True]

tf.concat

tf.concat相当于numpy中的np.concatenate函数,用于将两个张量在某一维度(axis)合并起来,

a = tf.constant([[1,2,3],[3,4,5]]) # shape (2,3)
b = tf.constant([[7,8,9],[10,11,12]]) # shape (2,3)
ab1 = tf.concat([a,b], axis=0) # shape(4,3)
ab2 = tf.concat([a,b], axis=1) # shape(2,6)

tf.stack

tf.stack 产生新的阶,并进行拼接张量,增加维度

a = tf.constant([[1,2,3],[3,4,5]]) # shape (2,3)
b = tf.constant([[7,8,9],[10,11,12]]) # shape (2,3)
ab = tf.stack([a,b], axis=0) # shape (2,2,3)

axis是决定其层叠(stack)张量的维度方向的,改变参数axis=2

import tensorflow as tf
a = tf.constant([[1,2,3],[3,4,5]]) # shape (2,3)
b = tf.constant([[7,8,9],[10,11,12]]) # shape (2,3)
ab = tf.stack([a,b], axis=2) # shape (2,3,2)

tf.unstack

tf.unstacktf.stack的操作相反,是将一个高阶数的张量在某个axis上分解为低阶数的张量

a = tf.constant([[1,2,3],[3,4,5]]) # shape (2,3)
b = tf.constant([[7,8,9],[10,11,12]]) # shape (2,3)
ab = tf.stack([a,b], axis=0) # shape (2,2,3) a1 = tf.unstack(ab, axis=0) # a1的输出为
# [<tf.Tensor 'unstack_1:0' shape=(2, 3) dtype=int32>,
# <tf.Tensor 'unstack_1:1' shape=(2, 3) dtype=int32>]

tf.transpose()函数

这个函数主要适用于交换输入张量的不同维度用,如果输入张量是二维,就相当是转置。如果张量是三维,就是用0,1,2来表示。这个列表里的每个数对应相应的维度。如果是[2,1,0],就把输入张量的第三维度和第一维度交换。

import tensorflow as tf
import numpy as np A = np.array([[1, 2, 3],
[4, 5, 6]])
print(A.shape) # (2,3)
x = tf.transpose(A, [1, 0])
print(x.shape) # (3,2) B = np.array([[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]], [[13, 14, 15, 16],
[17, 18, 19, 20],
[21, 22, 23, 24]]])
print(B.shape) # (2,3,4)
y = tf.transpose(B, [2, 1, 0])
print(y.shape) # (4,3,2)

enumerate()

enumerate() 函数用于将一个可遍历的数据对象组合为元组,同时返回数据下标数据,一般用在 for 循环当中

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons)))
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print(i, element) # 0 one
# 1 two
# 2 three

zip()

  将可迭代对象打包成一个个元组,然后返回包含这些元组的列表

语法:zip([iterable, ...])

a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b) # 打包为元组的列表
# [(1, 4), (2, 5), (3, 6)]
zip(a, c) # 元素个数与最短的列表一致
# [(1, 4), (2, 5), (3, 6)]
zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
# [(1, 2, 3), (4, 5, 6)]

tf.clip_by_global_norm理解

梯度剪裁一般的应用场景为

optimizer = tf.train.AdamOptimizer(self.learning_rate)
gradients, v = zip(*optimizer.compute_gradients(self.loss))
gradients, _ = tf.clip_by_global_norm(gradients, self.grad_clip)
updates_train_optimizer = optimizer.apply_gradients(zip(gradients, v), global_step=self.global_step)

梯度剪裁最直接的目的就是防止梯度暴躁,手段就是控制梯度的最大范式

tf.clip_by_global_norm(t_list, clip_norm, use_norm=None, name=None)

参数:

  • t_list:输入梯度
  • clip_norm:裁剪率
  • clip_norm:要使用的全球规范

返回:

  • list_clipped:裁剪后的梯度列表
  • global_norm:全局的规约数

但是,它比clip_by_norm()慢,因为在执行剪裁操作之前,必须准备好所有参数

tensorflow中的多线程管理

  Tensorflow的Session对象支持多线程,可以在一个会话中创建多个线程,并执行,在Session中所有线程都必须同步终止。

  Tensorflow提供两个类来实现对Session中多线程的管理,tf.Coordinator()tf.QueueRunner(),往往一起使用

tf.Coordinator()类 用来停止Session中的多个工作线程,并且向那个在等待的工作线程 发送终止程序报告异常,该线程捕获到这个异常之后就会终止所有线程。使用 tf.train.Coordinator()来创建一个线程管理器(协调器)对象。

tf.QueueRunner()类 用来启动tensor的入队线程,可以用来启动多个线程同时将多个tensor训练数据推送到队列中,具体执行函数是tf.train.start_queue_runners

  只有调用 tf.train.start_queue_runners 之后,才会真正把tensor推入内存序列中,供计算单元调用,否则会由于内存序列为空,数据流图会处于一直等待状态。

调用 tf.train.Coordinator  创建一个线程协调器,用来管理之后在Session中启动所有线程

调用 tf.train.start_queue_runners  启动入队线程,由多个或单个线程,按规则把文件读入Filename Queue中。

参考:tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners

rand生成一个[0~1]之间2行100列的数组

randn生成服从正态分布的数组

tf.ConfigProto()

https://blog.csdn.net/lanchunhui/article/details/50163669

https://blog.csdn.net/dcrmg/article/details/79780331

https://www.cnblogs.com/adong7639/p/8136273.html

https://www.cnblogs.com/MY0213/p/9208503.html

https://blog.csdn.net/u011509971/article/details/70244688

tf.contrib.layers.xavier_initializer_conv2d

xavier_initializer初始化的基本思想是保持输入和输出的方差一致,这样就避免了所有的输出值都趋向于0。

这个初始化器是用来保持每一层的梯度大小都差不多相同。

机器学习中的python常用函数的更多相关文章

  1. Python常用函数记录

    Python常用函数/方法记录 一. Python的random模块: 导入模块: import random 1. random()方法: 如上如可知该函数返回一个[0,1)(左闭右开)的一个随机的 ...

  2. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总

     PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...

  3. php中文件操作常用函数有哪些

    php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...

  4. python常用函数库收集。

    学习过Python都知道python中有很多库.python本身就是万能胶水,众多强大的库/模块正是它的优势. 收集一些Python常用的函数库,方便大家选择要学习的库,也方便自己学习收集,熟悉运用好 ...

  5. Python常用函数、方法、模块记录

    常用函数: 1.pow():乘方 2.abs():绝对值 3.round():四舍五入 4.int():转换为整数 5.input():键盘输入(会根据用户的输入来做类型的转换) raw_input( ...

  6. python常用函数年初大总结

    1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到o ...

  7. python常用函数及模块

    原文来源于博客园和CSDN 1.计算函数 abs()--取绝对值 max()--取序列最大值,包括列表.元组 min()--取序列最小值 len()--取长度 divmod(a,b)---取a//b除 ...

  8. python常用函数总结

    原文地址https://www.cnblogs.com/nice107/p/8118876.html 我们在学习python的时候,接触最多的往往则是那些函数,对于python函数,在这里为大家总结归 ...

  9. 超级干货,python常用函数大总结

    我们在学习python的时候,接触最多的往往则是那些函数,对于python函数,在这里为大家总结归纳了这些,如果有缺漏,还请及时留言指正哦! 话不多说,干货来袭! 1.常用内置函数:(不用import ...

随机推荐

  1. UVa 11489 整数游戏

    https://vjudge.net/problem/UVA-11489 题意: 给出一个数字串n,两个人轮流从中取出一个数字,要求每次取完之后剩下的数是3的倍数,不能取数者输. 思路: 要想取掉一个 ...

  2. DDMS

    DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务

  3. hdu2176nim博弈

    就是要搞清楚nim博弈的原理 特别是证明方法,这一题就是第二条证明方法得出来的结论,只要a[i]^k<a[i]输出就行了 证明如下: 根据定义,证明一种判断position的性质的方法的正确性, ...

  4. Mac下安装pcl-1.8.0

    更新,官方有Homebrew安装教程: http://pointclouds.org/documentation/tutorials/installing_homebrew.php#installin ...

  5. UVA-10806 Dijkstra, Dijkstra. (最小费用流,网络流建模)

    题目大意:给一张带权简单图,找出一条经过起点s和终点t的最小回路. 题目分析:建立网络,以s为源点,t为汇点,另每条边的容量为1,单位费用为边权值.求最小费用流,增广两次后的最小费用便是答案. 代码如 ...

  6. SSH-Auditor:一款SSH弱密码探测工具

    SSH-Auditor:一款SSH弱密码探测工具 freebuf 2018-09-16  ssh-auditor是一款可帮助你探测所在网络中ssh弱密码的工具. 特性 以下操作ssh-auditor都 ...

  7. 004PHP文件处理——目录操作:glob rewinddir opendir readdir

    <?php /** * 目录操作:glob rewinddir opendir readdir */ //glob 以数组形式返回,参数1这个目录的所有内容,可以置顶返回的具体类型 //只遍历输 ...

  8. Python基础学习----参数和返回值

    # 函数的参数和返回值 # 4种组合方式 # 1.无参无返 # def methodone(): # 2.无参有返 def methodtwo(): a=10 return a # 3.有参无返 # ...

  9. 433.92 TX RX module design and test recording。。

    This paper records the process of 433.92 TX RX module  design and test,fyi.  1 RX module The circuit ...

  10. node 使用范围 和 node的优势 (为什么 创业公司 选择的不是 java php ruby 等)

    链接 一些国外大公司 范围: 第一: 希望合并后台多个接口 成为一个接口,  或者频繁改动接口 相关, 比如数据 和数据格式之类,  后台难以配合, 这里可以使用node作为后台的应用层调用其他接口 ...