DL with python(2)——神经网络优化预备知识

本文涉及到的是中国大学慕课《人工智能实践:Tensorflow笔记》第二讲的内容,主要是神经网络优化涉及的几个函数。
相关版本为Windows10系统,Python3.7,Tensorflow1.14.0,PyCharm2019.3.3

tf.where()

条件语句真返回A ,条件语句假返回B
tf.where( 条件语句,真返回A ,假返回B)

import tensorflow as tf

a = tf.constant([1, 2, 3, 1, 1])
b = tf.constant([0, 1, 3, 4, 5])
c = tf.where(tf.greater(a, b), a, b)  # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素
#打印c的信息
print("c:", c)
#打印c的内容
sess = tf.compat.v1.Session()
print(sess.run(c))

运行结果

c: Tensor("Select:0", shape=(5,), dtype=int32)
[1 2 3 4 5]

np.random.RandomState.rand()

返回一个[0,1)之间的随机数
np.random.RandomState.rand(维度) #维度为空,返回标量

import numpy as np

rdm = np.random.RandomState(seed=1)
a = rdm.rand()          #返回一个随机标量
b = rdm.rand(2, 3)      #返回一个2*3的随机数矩阵
# 打印
print("a:", a)
print("b:", b)

运行结果

a: 0.417022004702574
b: [[7.20324493e-01 1.14374817e-04 3.02332573e-01]
 [1.46755891e-01 9.23385948e-02 1.86260211e-01]]

np.vstack()

将两个数组按垂直方向叠加,等同于MATLAB中的";"操作
np.vstack( 数组1,数组2)
前提是两个数组的列数相同,大小分别为(m1,n),(m2,n)

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
#a,b垂直方向的叠加
c = np.vstack((a, b))
print("c:\n", c)

运行结果

c:
 [[1 2 3]
 [4 5 6]]

生成网格坐标点

np.mgrid[ ]

返回间隔数值点,可同时返回多组,
np.mgrid[ 起始值 : 结束值 : 步长,起始值 : 结束值 : 步长 , …… ]

x.ravel( )

将x变为一维数组,即把变量拉直

np.c_[ ]

使返回的间隔数值点配对
np.c_[ 数组1 ,数组2, , … ]

import numpy as np
import tensorflow as tf

# 生成等间隔数值点,初始的x为[1,2],y为[2,2.5,3,3.5],统一格式二者变成2*4的矩阵
x, y = np.mgrid[1:3:1, 2:4:0.5]
# 将x, y拉直,并合并配对为二维张量,生成二维坐标点
grid = np.c_[x.ravel(), y.ravel()]

print("x:\n", x) 
print("y:\n", y)
print("x.ravel():\n", x.ravel())
print("y.ravel():\n", y.ravel())
print('grid:\n', grid)

运行结果

x:
 [[1. 1. 1. 1.]
 [2. 2. 2. 2.]]
y:
 [[2.  2.5 3.  3.5]
 [2.  2.5 3.  3.5]]
x.ravel():
 [1. 1. 1. 1. 2. 2. 2. 2.]
y.ravel():
 [2.  2.5 3.  3.5 2.  2.5 3.  3.5]
grid:
 [[1.  2. ]
 [1.  2.5]
 [1.  3. ]
 [1.  3.5]
 [2.  2. ]
 [2.  2.5]
 [2.  3. ]
 [2.  3.5]]

你可能感兴趣的:(python学习)