目录
五. 对多个相同维度的类数组同时打乱顺序,但是保持它们之间的一一对应关系:
六. 获取当前所打开文件的路径os.path.dirname(os.path.realpath(sys.argv[0])):
七. 修改文件夹下所有文件的名字的简单示例os.rename:
八. python 执行某段程序,因不知名原因而一直卡顿着也不报错退出,可以设置超时,跳过这部分的执行。func_timeout.func_set_timeout(1, False)
十. signal.argrelextrema寻找局部极大、小值:
十一. map(func, *iterables)方法的3种应用示例:
十二. 用glob方法返回某一文件夹下所有的文件的名字list:
十三. tf.py_func,将一个python函数封装为一个tensorflow的操作:
一. yield:
在一个函数中,当一个循环的结果经过yield,那么,这个函数就不再是普通的函数,它成为了一个generator(生成器)函数,返回的结果是生成器,那么,你就可以通过s.__next__()
或者next(s)
(s是调用函数返回值)方法获得每一次迭代的值。这样做的好处是节省内存。 比如下面的代码,每调用一次__next__()
,就会执行yield之前的代码,直到yield,就会挂起,等下一次再调用__next__()
,会接着上一次停留的地方继续执行,直到yield。
def f():
for i in range(3):
yield i
s = f()
print(s.__next__()) #或者next(s)
print(s.__next__()) #或者next(s)
print(s.__next__()) #或者next(s)
二. tf.constant:
创建一个常量tensor。
import tensorflow as tf;
import numpy as np;
t1 = tf.constant(value=[1, 2.2, 3, 5e-3],
dtype=None,
shape=None,
name="Const",
verify_shape=False)
with tf.Session() as sess:
print(sess.run(t1)) #output: [1. 2.2 3. 0.005]
三. tf.stack 和 tf.unstack:
tf.stack([x, y, z]) 等价于np.stack([x, y, z]),用于将多个相同形状的tensor按照指定维度堆叠在一起。与之相反的是tf.unstack,假设t.shape = (A,B,C), 那么tf.unstack(t,axis=0)相当于将t分解成A个(B,C)组合成的list。
#coding=utf-8
import tensorflow as tf;
import numpy as np;
x = tf.constant([1, 4])
y = tf.constant([2, 5])
z = tf.constant([3, 6])
s1 = tf.stack(values=[x, y, z],
axis=0,
name="stack") # [[1, 4], [2, 5], [3, 6]]
s2 = tf.stack([x, y, z], axis=1) # [[1, 2, 3], [4, 5, 6]]
s3 = tf.unstack(value=s1,
num=None,
axis=0,
name="unstack")
with tf.Session() as sess:
print(sess.run(s1)) #output: [[1 4] [2 5] [3 6]]
print(sess.run(s2)) #output: [[1 2 3] [4 5 6]]
print(sess.run(s3)) #output: [array([1, 4]), array([2, 5]), array([3, 6])]
四. tf.tensordot:
目前对其了解就是,用第一个张量中的值依次与第二个张量中的值相乘。比如下面的例子,当axes为0时,第一个张量是[1,2],第二个是[4,5,6],它们的结果就是1与[4,5,6]分别相乘和2与[4,5,6]分别相乘的结果组合在一起的新张量。
#coding=utf-8
import tensorflow as tf;
import numpy as np;
from openpyxl.styles.builtins import output
t = tf.constant([1,2])
t1 = tf.constant([4,5,6])
t2 = tf.tensordot(t, t1, axes=0)
with tf.Session() as sess:
print(sess.run(t2))
'''
output:
[[ 4 5 6]
[ 8 10 12]]
'''
五. 对多个相同维度的类数组同时打乱顺序,但是保持它们之间的一一对应关系:
#coding=utf-8
'''对多个相同维度的类数组同