欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-12 19:50:01
...
全连接层和输出方式!

一、全连接层

1.1、前言介绍

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

1.2、Fully connected layer(全连接层)

〖 tensorflow2.0笔记10〗:全连接层和输出方式!
〖 tensorflow2.0笔记10〗:全连接层和输出方式!
  • inputinputshapeshapebuildbuildshapeshape不一致情况
〖 tensorflow2.0笔记10〗:全连接层和输出方式!

1.3、Muti-layers前面是一层

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

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〗:全连接层和输出方式!

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〗:全连接层和输出方式!

2.2、实数集范围R

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

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

〖 tensorflow2.0笔记10〗:全连接层和输出方式!
  • 演示实例:
〖 tensorflow2.0笔记10〗:全连接层和输出方式!

注意:
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〗:全连接层和输出方式!
  • 经常应用在分类问题
〖 tensorflow2.0笔记10〗:全连接层和输出方式!

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

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

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

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