tensorflow2.0笔记10:全连接层和输出方式!

全连接层和输出方式!

一、全连接层

1.1、前言介绍

1.2、Fully connected layer(全连接层)

  • inputinputshapeshapebuildbuildshapeshape不一致情况

1.3、Muti-layers前面是一层

1.4、实战演练

  • 测试代码
import tensorflow as tf
from tensorflow import keras
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'


x = tf.random.normal([2,3])

model = keras.Sequential([
    keras.layers.Dense(2, activation='relu'),
    keras.layers.Dense(2, activation='relu'),
    keras.layers.Dense(2)
])
model.build(input_shape=[None, 3])
model.summary()

for p in model.trainable_variables:
    print(p.name,p.shape)
  • 运行结果

1.5、补充tensorflow在pycharm自动补全

  • 我们使用的时候可以发现,pycharm中tensorflow2.0的代码补全功能很不好用;其实不是因为pycharm的原因,是tensorflow代码封装的原因,可以用下面的方式:
from tenorflow.python import keras			#代替下面的
from tensorflow import keras                #代码补全功能就非常好用了。

原因是因为: 看tensorflow的源码,有一个@tf_exportt的装饰器,带有这个的都可以用,但是没有办法补全。

二、输出方式

2.1、输出范围约束

2.2、实数集范围R

2.3、输出范围[0-1]tf.sigmoid()

  • 演示实例:

注意:
1、tf.linspace(start, end, num):这个函数主要的参数就这三个,start代表起始的值,end表示结束的值,num表示在这个区间里生成数字的个数,生成的数组是等间隔生成的。start和end这两个数字必须是浮点数,不能是整数,如果是整数会出错的,请注意!
2、np.linspace(start, end, num):主要的参数也是这三个,我们平时用的时候绝大多数时候就是用这三个参数。start代表起始的值,end表示结束的值,num表示在这个区间里生成数字的个数,生成的数组是等间隔生成的。start和end这两个数字可以是整数或者浮点数!

2.4、输出范围[0-1]tf.nn.softmax()

  • 经常应用在分类问题

2.5、输出范围[-1~1]tf.nn.softmax()

注意: tanh函数其实是sigmoid函数通过平移实现的,先对y的范围进行一个放大,放达到0~2,再往下平移了一下。把数值压缩到-1到1之间。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章