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

全连接层和输出方式!

文章目录

    • 一、全连接层
        • 1.1、前言介绍
        • 1.2、Fully connected layer(全连接层)
        • 1.3、Muti-layers前面是一层
        • 1.4、实战演练
        • 1.5、补充tensorflow在pycharm自动补全
    • 二、输出方式
        • 2.1、输出范围约束
        • 2.2、实数集范围R
        • 2.3、输出范围[0-1]tf.sigmoid()
        • 2.4、输出范围[0-1]tf.nn.softmax()
        • 2.5、输出范围[-1~1]tf.nn.softmax()

一、全连接层

1.1、前言介绍

tensorflow2.0笔记10:全连接层和输出方式!_第1张图片
tensorflow2.0笔记10:全连接层和输出方式!_第2张图片
tensorflow2.0笔记10:全连接层和输出方式!_第3张图片
tensorflow2.0笔记10:全连接层和输出方式!_第4张图片

1.2、Fully connected layer(全连接层)

tensorflow2.0笔记10:全连接层和输出方式!_第5张图片
tensorflow2.0笔记10:全连接层和输出方式!_第6张图片
  • i n p u t input input s h a p e shape shape b u i l d build build s h a p e shape shape不一致情况
tensorflow2.0笔记10:全连接层和输出方式!_第7张图片

1.3、Muti-layers前面是一层

tensorflow2.0笔记10:全连接层和输出方式!_第8张图片

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)
  • 运行结果
tensorflow2.0笔记10:全连接层和输出方式!_第9张图片

1.5、补充tensorflow在pycharm自动补全

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

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

二、输出方式

2.1、输出范围约束

tensorflow2.0笔记10:全连接层和输出方式!_第10张图片

2.2、实数集范围R

tensorflow2.0笔记10:全连接层和输出方式!_第11张图片

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

tensorflow2.0笔记10:全连接层和输出方式!_第12张图片
  • 演示实例:
tensorflow2.0笔记10:全连接层和输出方式!_第13张图片

注意:
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()

tensorflow2.0笔记10:全连接层和输出方式!_第14张图片
  • 经常应用在分类问题
tensorflow2.0笔记10:全连接层和输出方式!_第15张图片

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

tensorflow2.0笔记10:全连接层和输出方式!_第16张图片

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

tensorflow2.0笔记10:全连接层和输出方式!_第17张图片

你可能感兴趣的:(深度学习,Tensorflow,Deep,Learning)