Python练习系列

Python标准库

Numpy教程

Tensorflow API

 

目录

一. yield:

二. tf.constant:

三. tf.stack 和 tf.unstack:

四. tf.tensordot:

五. 对多个相同维度的类数组同时打乱顺序,但是保持它们之间的一一对应关系:

六.  获取当前所打开文件的路径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的操作:      

十四. 两个长度一致的list或数组联动着排序


一. 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
'''对多个相同维度的类数组同
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值