没有合适的资源?快使用搜索试试~ 我知道了~
tensorflow之自定义神经网络层实例
11 下载量 98 浏览量
2020-09-18
00:12:03
上传
评论
收藏 56KB PDF 举报
温馨提示
试读
2页
今天小编就为大家分享一篇tensorflow之自定义神经网络层实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
资源推荐
资源详情
资源评论
tensorflow之自定义神经网络层实例之自定义神经网络层实例
今天小编就为大家分享一篇tensorflow之自定义神经网络层实例,具有很好的参考价值,希望对大家有所帮助。
一起跟随小编过来看看吧
如下所示:如下所示:
import tensorflow as tf
tfe = tf.contrib.eager
tf.enable_eager_execution()
大多数情况下,在为机器学习模型编写代码时,您希望在比单个操作和单个变量操作更高的抽象级别上操作。
1.关于图层的一些有用操作关于图层的一些有用操作
许多机器学习模型可以表达为相对简单的图层的组合和堆叠,TensorFlow提供了一组许多常用图层,以及您从头开始或作为
组合创建自己的应用程序特定图层的简单方法。TensorFlow在tf.keras包中包含完整的Keras API,而Keras层在构建自己的模
型时非常有用。
#在tf.keras.layers包中,图层是对象。要构造一个图层,只需构造一个对象。大多数层将输出维度/通道的数量作为第一个参数。
layer=tf.keras.layers.Dense(100)
#输入维度的数量通常是不必要的,因为它可以在第一次使用图层时推断出来,但如果您想手动指定它,则可以提供它,这在某些复杂模型中很有用。
layer=tf.keras.layers.Dense(10,input_shape=(None,5))
#调用层
layer(tf.zeros([10,5]))
#图层有许多有用的方法。例如,您可以通过调用layer.variables来检查图层中的所有变量。在这种情况下,完全连接的层将具有权重和偏差的变量。
variable=layer.variables
# variable[0]
layer.kernel.numpy()
layer.bias
2.自定义图层自定义图层
实现自己的层的最佳方法是扩展tf.keras.Layer类并实现:
__init__,您可以在其中执行所有与输入无关的初始化
build方法,您知道输入张量的形状,并可以进行其余的初始化
call方法,在这里进行正向传播计算
请注意,您不必等到调用build来创建变量,您也可以在__init__中创建它们。但是,在build中创建它们的优点是它可以根据图
层将要操作的输入的形状启用后期变量创建。另一方面,在__init__中创建变量意味着需要明确指定创建变量所需的形状。
class MyDenseLayer(tf.keras.layers.Layer):
def __init__(self, num_outputs):
super(MyDenseLayer, self).__init__()
self.num_outputs = num_outputs
def build(self, input_shape):
self.kernel = self.add_variable("kernel",
shape=[input_shape[-1].value,
self.num_outputs])
def call(self, input):
return tf.matmul(input, self.kernel)
layer = MyDenseLayer(10)
print(layer(tf.zeros([10, 5])))
print(layer.variables)
3.搭建网络结构搭建网络结构
机器学习模型中许多有趣的图层是通过组合现有层来实现的。例如,resnet中的每个residual块是卷积,批量标准化等的组
合。
创建包含其他图层的类似图层的东西时使用的主类是tf.keras.Model。实现一个是通过继承自tf.keras.Model完成的。
class ResnetIdentityBlock(tf.keras.Model):
def __init__(self, kernel_size, filters):
super(ResnetIdentityBlock, self).__init__(name='')
filters1, filters2, filters3 = filters
资源评论
weixin_38522323
- 粉丝: 5
- 资源: 908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功