1. np.fliplr:左右翻转
>> a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> b=fliplr(a) %左右翻转
b =
6 1 8
7 5 3
2 9 4
2. numpy.linspace
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):
在指定的间隔内返回均匀间隔的数字。
3. np.meshgrid:
二维坐标系中,X轴可以取三个值1,2,3, Y轴可以取三个值7,8, 请问可以获得多少个点的坐标?
显而易见是6个:
(1,7)(2,7)(3,7)
(1,8)(2,8)(3,8)
import numpy as np # 坐标向量
a = np.array([1,2,3]) # 坐标向量
b = np.array([7,8]) # 从坐标向量中返回坐标矩阵
# 返回list,有两个元素,第一个元素是X轴的取值,第二个元素是Y轴的取值
res = np.meshgrid(a,b)
#返回结果: [array([ [1,2,3] [1,2,3] ]), array([ [7,7,7] [8,8,8] ])]
4. np.clip:将数字强制在一个范围内
def post_process_disparity(disp):
_, h, w = disp.shape # 获取视差图的三个维度
l_disp = disp[0,:,:] # 获取左视差图
r_disp = np.fliplr(disp[1,:,:]) # 获取右视差图
m_disp = 0.5 * (l_disp + r_disp)
l, _ = np.meshgrid(np.linspace(0, 1, w), np.linspace(0, 1, h)) # 在0和1之间取宽度*高度个数
l_mask = 1.0 - np.clip(20 * (l - 0.05), 0, 1) # 生成左标志
r_mask = np.fliplr(l_mask) # 生成右标志
return r_mask * l_disp + l_mask * r_disp + (1.0 - l_mask - r_mask) * m_disp #返回???
# 记录txt文件中的行数
def count_text_lines(file_path):
f = open(file_path, 'r') # 打开文件
lines = f.readlines() # 记录行数
f.close() # 关闭文件
return len(lines) # 返回行数
5. tf.ConfigProto(allow_soft_placement=True)
在tf中,通过命令 “with tf.device(’/cpu:0’):”,允许手动设置操作运行的设备。如果手动设置的设备不存在或者不可用,就会导致tf程序等待或异常,为了防止这种情况,可以设置tf.ConfigProto()中参数allow_soft_placement=True,允许tf自动选择一个存在并且可用的设备来运行操作。
6. tf.train.Coordinator:
Coordinator类用来管理在Session中的多个线程,可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告异常,该线程捕获到这个异常之后就会终止所有线程。使用 tf.train.Coordinator()来创建一个线程管理器(协调器)对象。
7. tf.app.run():入口函数
如果你的代码中的入口函数不叫main(),而是一个其他名字的函数,如test(),则你应该这样写入口tf.app.run(test)
如果你的代码中的入口函数叫main(),则你就可以把入口写成tf.app.run()