蓝螃蟹Karry0921

导航

人工智能第五章学习报告

【案例5.1】导入TensorFlow,测试版本,并创建打印一个tf常量,获取常量的值
import tensorflow as tf print(tf.__version__) a=tf.constant(2.0) print(a)

运行结果:

 

 

 

【案例5.2】在Tensorflow2.x的环境中使用1.x版本的代码

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
a=tf.constant(2.0)
with tf.Session() as sess:
    print(sess.run(a))
    print(a)

运行结果:

 

【案例5.3】TensorFlow常量的使用
import tensorflow as tf #声明一个标题常量 t_1=tf.constant(2) t_2=tf.constant(2) #常量相加 t_add=tf.add(t_1,t_2) #一个形如一行三列的常量向量可以用如下代码声明 t_3=tf.constant([4,3,2]) #定义一个形状为[M,N]的全0张量和全1张量 zero=tf.zeros(shape=[3,3]) ones=tf.ones(shape=[3,3]) print(t_add)
【案例5.4】TensorFlow变量的使用
#直接赋值初始化 import tensorflow
as tf #直接给变量赋值初始化 bias1=tf.Variable(2) #通过initial_value显示赋值初始化 bias2=tf.Variable(initial_value=3.) bias1,bias2

#使用初始化函数初始化
import tensorflow as tf
a=tf.Variable(tf.zeros([2,1]))  #将形状为[2,1]张量初始化为0
b=tf.Variable(tf.zeros_like(a)) #返回一个和给定tensor同样shape的tensor,其中的元素全部置0
c=tf.Variable(tf.ones([2,1]))   #初始化为1
d=tf.Variable(tf.ones_like(a))  #将与a一个形状的张量初始化为1
e=tf.fill([2,3],4)              #将指定形状的张量初始化为指定数值
print(a,b,c,d,e)
【案例5.5】TensorFlow数组转张量
import tensorflow.compat.v1 as tf tf.disable_v2_behavior() tensor = tf.constant([[1.0,2.0],[3.0,4.0]]) print("Tensor = ",tensor) array = tensor.eval(session=tf.Session()) print(array)

运行结果:

 

 

【案例5.6】Tensor的基础运算操作
加、减、乘、除之类的运算
import tensorflow as tf
print(tf.add(1,2))                                       #0维向量相加
print(tf.add([1,2],[3,4]))                               #一维向量相加
print(tf.matmul([[1,2,3]],[[4],[5],[6]]))                #矩阵相乘
print(tf.square(5))                                      #计算5的平方
print(tf.pow(2,3))                                       #计算2的3次方
print(tf.square(2)+tf.square(3))                         #也支持操作符重载
print(tf.reduce_sum([1,2,3]))                            #计算数值的和
print(tf.reduce_mean([1,2,3]))                           #计算均值
运行结果:

 

 

【案例5.7】模型搭建时常用的Tensor操作
import tensorflow as tf print(tf.argmax([1,0,0,8,6])) #返回数组内最大的索引,常用于处理one_hot向量 a=tf.constant([[1,2],[3,4],[5,6]]) b=tf.expand_dims(a,0) #在tensor中增加一个维度,0表示需要添加维度的下标为0 c=tf.expand_dims(a,1) #在tensor中增加一个维度,1表示需要添加的维度下标为1 print(a.shape,b.shape,c.shape) x=[[1,2,3],[4,5,6],[7,8,9]] y=[[2,3,4],[5,6,7],[8,9,10]] z1=tf.concat([x,y],axis=0) #按照维度0进行拼接 z2=tf.concat([x,y],axis=1) print(z1) print(z2) a=tf.Variable([[[1,2,3],[1,2,3]],[[7,8,9],[10,11,12]]]) b=tf.reshape(a,[6,2]) print(a.numpy(),'\n',b.numpy())

运行结果:

 

 

 

 

 

5.4 习题 简答题

(1)目前使用最广泛的两种深度学习框架是什么?

目前最主流的深度框架有 TensorFlow、Pytorch 以及 Keras。

其中:

1)TensorFlow 是被使用最广泛的一个深度学习框架,已广泛的运用在如,图像识别、图片分类等领域;

2)Pytorch 是一个开源的 Python 机器学习库,基于 Torch 开发,底层由 C++实现,也被广泛使用在人工智能领域;

3)Keras 则是 Python 编写的高级神经网络 API,它可以将 TensorFlow、CNTK,或是 Theano 作为后端程序来用,它的代码简单、易读。

 

(2)在TensorFlow2.x中,初始化权值和偏置常用的方法分别是什么?

在TensorFlow中,模型的权值和偏置常常被定义为变量。变量在创建的时候,需要设定其初始化方法:可以直接赋值,也可以使用初始化函数。直接赋值初始化变量。

1)正态分布初始化,tf.zeros、tf.zeros_like、tf.ones、tf.ones_like、tf.fill、tf.random.normal

2)截断正态分布初始化,tf.random.truncated_normal

3)随机均匀分布,tf.random.uniform

其中,tf.random.normal和tf.zeros是常常被用来进行权值和偏置的初始化方法。

 

(3)序贯式和函数式

1)序贯式1
import tensorflow as tf

model = tf.keras.Sequential()
#创建一个全连接层,神经元个数为256,输入为784,激活函数为relu
model.add(tf.keras.layers.Dense(256, activation='relu', input_dim=784))
model.add(tf.keras.layers.Dense(128, activation='relu'))
model.add(tf.keras.layers.Dense(10, activation='softmax'))

2)序贯式2

import tensorflow as tf

imput_layer = tf.keras.layers.Input(shape=(784,))
hid1_layer = tf.keras.layers.Dense(256, activation='relu')
hid2_layer = tf.keras.layers.Dense(128, activation='relu')
output_layers = tf.keras.layers.Dense(10, activation='softmax') #将层的列表传给Sequential的构造函数
model = tf.keras.Sequential(layers=[imput_layer, hid1_layer, hid2_layer, output_layers])

3)import tensorflow as tf
#创建一个模型,包含一个输入层和三个全连接层

inputs = tf.keras.layers.Input(shape=(4))
x=tf.keras.layers.Dense(32,activation='relu')(inputs)
x=tf.keras.layers.Dense(64,activation='relu')(x)
outputs=tf.keras.layers.Dense(3,activation='softmax')(x)
model=tf.keras.Model(inputs=inputs,outputs =outputs)

 

(4)使用pytorch构建一个5*3大小的随机初始化的矩阵

import torch
data = torch.rand(5,3)
print(data)
运行结果:


(5)请列举一些其他的深度学习框架

答:TensorFlow 、Caffe、Theano、Keras、PyTorch、MXNet。

 

posted on 2022-04-24 23:55  蓝螃蟹Karry0921  阅读(40)  评论(0编辑  收藏  举报