〖 tensorflow2.0笔记10〗:全连接层和输出方式!
程序员文章站
2022-06-12 19:50:01
...
全连接层和输出方式! |
文章目录
一、全连接层
1.1、前言介绍
1.2、Fully connected layer(全连接层)
- 的 和 的不一致情况
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之间。
上一篇: config.py