Skip to content

Commit

Permalink
add chapter4
Browse files Browse the repository at this point in the history
  • Loading branch information
lyhue1991 committed Feb 29, 2020
1 parent 5585940 commit 827d2ad
Show file tree
Hide file tree
Showing 12 changed files with 25 additions and 21 deletions.
4 changes: 2 additions & 2 deletions 1-3,文本数据建模流程范例.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@ def train_model(model,ds_train,ds_valid,epochs):

for features, labels in ds_valid:
valid_step(model,features,labels)
#此行代码需根据

#此处logs模板需要根据metric具体情况修改
logs = 'Epoch={},Loss:{},Accuracy:{},Valid Loss:{},Valid Accuracy:{}'

if epoch%1==0:
Expand Down
8 changes: 4 additions & 4 deletions 2-2,三种计算图.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
### 二,静态计算图


在TensorFlow1.0中,使用静态计算图分两步,第一步定义计算图,第二部在会话中执行计算图
在TensorFlow1.0中,使用静态计算图分两步,第一步定义计算图,第二步在会话中执行计算图

<!-- #region -->
**TensorFlow 1.0静态计算图范例**
Expand All @@ -49,7 +49,7 @@ with g.as_default():

#执行计算图
with tf.Session(graph = g) as sess:
print(sess.run(fetches = z,feed_dict={}))
print(sess.run(fetches = z,feed_dict = {x:"hello",y:"world"}))

```
<!-- #endregion -->
Expand Down Expand Up @@ -81,7 +81,7 @@ with tf.compat.v1.Session(graph = g) as sess:

在TensorFlow2.0中,使用的是动态计算图和Autograph.

在TensorFlow1.0中,使用静态计算图分两步,第一步定义计算图,第二部在会话中执行计算图
在TensorFlow1.0中,使用静态计算图分两步,第一步定义计算图,第二步在会话中执行计算图

动态计算图已经不区分计算图的定义和执行了,而是定义后立即执行。因此称之为 Eager Excution.

Expand Down Expand Up @@ -156,7 +156,7 @@ writer = tf.summary.create_file_writer(logdir)
tf.summary.trace_on(graph=True, profiler=True)

#执行autograph
result = strjoin("hello","China")
result = strjoin("hello","world")

#将计算图信息写入日志
with writer.as_default():
Expand Down
21 changes: 13 additions & 8 deletions 4-1,张量的结构操作.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

张量数学运算主要有:标量运算,向量运算,矩阵运算。另外我们会介绍张量运算的广播机制。

本篇我们将介绍张量的结构操作
本篇我们介绍张量的结构操作


### 一,创建张量
Expand Down Expand Up @@ -383,7 +383,8 @@ array([[52, 82, 66, 55, 17, 86, 14],

```python
#抽取每个班级第0个学生,第5个学生,第9个学生的全部成绩
p = tf.boolean_mask(scores,[True,False,False,False,False,True,False,False,False,True],axis=1)
p = tf.boolean_mask(scores,[True,False,False,False,False,
True,False,False,False,True],axis=1)
tf.print(p)
```

Expand Down Expand Up @@ -458,9 +459,10 @@ tf.scatter_nd的作用和tf.gather_nd有些相反,tf.gather_nd用于收集张

```python
#找到张量中小于0的元素,将其换成np.nan得到新的张量
#tf.where和np.where作用类似,可以理解为if的张量版本

c = tf.constant([[-1,1,-1],[2,2,-2],[3,-3,3]],dtype=tf.float32)
d = tf.where(c<0,tf.fill(c.shape,np.nan),c) #tf.where和np.where作用类似,可以理解为if的张量版本
d = tf.where(c<0,tf.fill(c.shape,np.nan),c)
d
```

Expand Down Expand Up @@ -504,7 +506,8 @@ array([[ 0., 1., -1.],
```

```python
#scatter_nd的作用和gather_nd有些相反,可以将某些值插入到一个给定shape的全0的张量的指定位置处。
#scatter_nd的作用和gather_nd有些相反
#可以将某些值插入到一个给定shape的全0的张量的指定位置处。
indices = tf.where(c<0)
tf.scatter_nd(indices,tf.gather_nd(c,indices),c.shape)
```
Expand Down Expand Up @@ -534,8 +537,12 @@ tf.expand_dims 可以增加维度。
tf.transpose 可以交换维度。



tf.reshape可以改变张量的形状,但是其本质上不会改变张量元素的存储顺序,所以,该操作实际上非常迅速,并且是可逆的。

```python
a = tf.random.uniform(shape=[1,3,3,2],minval=0,maxval=255,dtype=tf.int32)
a = tf.random.uniform(shape=[1,3,3,2],
minval=0,maxval=255,dtype=tf.int32)
tf.print(a.shape)
tf.print(a)
```
Expand Down Expand Up @@ -569,11 +576,8 @@ TensorShape([3, 6])
[39 7 138 129 59 205]]
```

```python

```

reshape可以改变张量的形状,但是其本质上不会改变张量元素的存储顺序,所以,该操作实际上非常迅速,并且是可逆的。

```python
# 改回成 [1,3,3,2] 形状的张量
Expand All @@ -600,6 +604,7 @@ tf.print(c)
```

如果张量在某个维度上只有一个元素,利用tf.squeeze可以消除这个维度。

和tf.reshape相似,它本质上不会改变张量元素的存储顺序。

张量的各个元素在内存中是线性存储的,其一般规律是,同一层级中的相邻元素的物理地址也相邻。
Expand Down
4 changes: 1 addition & 3 deletions 4-2,张量的数学运算.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,9 +350,7 @@ tf.linalg.trace(a)
```

```
#矩阵求trace
a = tf.constant([[1.0,2],[3,4]])
tf.linalg.trace(a)
<tf.Tensor: shape=(), dtype=float32, numpy=5.0>
```

```python
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,19 @@ tf.keras绝大部分功能和兼容多种后端的Keras库用法完全一样,

### 三,本书面向读者


**本书假定读者有一定的机器学习和深度学习基础,使用过Keras或者Tensorflow1.0或者Pytorch搭建训练过模型。**

**对于没有任何机器学习和深度学习基础的同学,建议在学习本书时同步参考学习《Python深度学习》一书。**


《Python深度学习》这本书是Keras之父Francois Chollet所著,该书假定读者无任何机器学习知识,以Keras为工具,

使用丰富的范例示范深度学习的最佳实践,该书通俗易懂,**全书没有一个数学公式,注重培养读者的深度学习直觉。**


该书电子版下载链接:https://pan.baidu.com/s/1-4q6VjLTb3ZxcefyNCbjSA 提取码:wtzo




```python

```
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 3 additions & 1 deletion 四、TensorFlow的低阶API.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ TensorFlow提供的方法比numpy更全面,运算速度更快,如果需要

张量数学运算主要有:标量运算,向量运算,矩阵运算。另外我们会介绍张量运算的广播机制。


AutoGraph计算图我们将介绍使用Autograph的规范建议,Autograph的机制原理,Autograph和tf.Module.




0 comments on commit 827d2ad

Please sign in to comment.