Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/tensorflow/python/keras/layers/__init__.py: 97%

126 statements  

« prev     ^ index     » next       coverage.py v7.4.0, created at 2024-01-03 07:57 +0000

1# Copyright 2016 The TensorFlow Authors. All Rights Reserved. 

2# 

3# Licensed under the Apache License, Version 2.0 (the "License"); 

4# you may not use this file except in compliance with the License. 

5# You may obtain a copy of the License at 

6# 

7# http://www.apache.org/licenses/LICENSE-2.0 

8# 

9# Unless required by applicable law or agreed to in writing, software 

10# distributed under the License is distributed on an "AS IS" BASIS, 

11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

12# See the License for the specific language governing permissions and 

13# limitations under the License. 

14# ============================================================================== 

15"""Keras layers API.""" 

16 

17from tensorflow.python import tf2 

18 

19# Generic layers. 

20# pylint: disable=g-bad-import-order 

21# pylint: disable=g-import-not-at-top 

22from tensorflow.python.keras.engine.input_layer import Input 

23from tensorflow.python.keras.engine.input_layer import InputLayer 

24from tensorflow.python.keras.engine.input_spec import InputSpec 

25from tensorflow.python.keras.engine.base_layer import Layer 

26from tensorflow.python.keras.engine.base_preprocessing_layer import PreprocessingLayer 

27 

28# Advanced activations. 

29from tensorflow.python.keras.layers.advanced_activations import LeakyReLU 

30from tensorflow.python.keras.layers.advanced_activations import PReLU 

31from tensorflow.python.keras.layers.advanced_activations import ELU 

32from tensorflow.python.keras.layers.advanced_activations import ReLU 

33from tensorflow.python.keras.layers.advanced_activations import ThresholdedReLU 

34from tensorflow.python.keras.layers.advanced_activations import Softmax 

35 

36# Convolution layers. 

37from tensorflow.python.keras.layers.convolutional import Conv1D 

38from tensorflow.python.keras.layers.convolutional import Conv2D 

39from tensorflow.python.keras.layers.convolutional import Conv3D 

40from tensorflow.python.keras.layers.convolutional import Conv1DTranspose 

41from tensorflow.python.keras.layers.convolutional import Conv2DTranspose 

42from tensorflow.python.keras.layers.convolutional import Conv3DTranspose 

43from tensorflow.python.keras.layers.convolutional import SeparableConv1D 

44from tensorflow.python.keras.layers.convolutional import SeparableConv2D 

45 

46# Convolution layer aliases. 

47from tensorflow.python.keras.layers.convolutional import Convolution1D 

48from tensorflow.python.keras.layers.convolutional import Convolution2D 

49from tensorflow.python.keras.layers.convolutional import Convolution3D 

50from tensorflow.python.keras.layers.convolutional import Convolution2DTranspose 

51from tensorflow.python.keras.layers.convolutional import Convolution3DTranspose 

52from tensorflow.python.keras.layers.convolutional import SeparableConvolution1D 

53from tensorflow.python.keras.layers.convolutional import SeparableConvolution2D 

54from tensorflow.python.keras.layers.convolutional import DepthwiseConv2D 

55 

56# Image processing layers. 

57from tensorflow.python.keras.layers.convolutional import UpSampling1D 

58from tensorflow.python.keras.layers.convolutional import UpSampling2D 

59from tensorflow.python.keras.layers.convolutional import UpSampling3D 

60from tensorflow.python.keras.layers.convolutional import ZeroPadding1D 

61from tensorflow.python.keras.layers.convolutional import ZeroPadding2D 

62from tensorflow.python.keras.layers.convolutional import ZeroPadding3D 

63from tensorflow.python.keras.layers.convolutional import Cropping1D 

64from tensorflow.python.keras.layers.convolutional import Cropping2D 

65from tensorflow.python.keras.layers.convolutional import Cropping3D 

66 

67# Core layers. 

68from tensorflow.python.keras.layers.core import Masking 

69from tensorflow.python.keras.layers.core import Dropout 

70from tensorflow.python.keras.layers.core import SpatialDropout1D 

71from tensorflow.python.keras.layers.core import SpatialDropout2D 

72from tensorflow.python.keras.layers.core import SpatialDropout3D 

73from tensorflow.python.keras.layers.core import Activation 

74from tensorflow.python.keras.layers.core import Reshape 

75from tensorflow.python.keras.layers.core import Permute 

76from tensorflow.python.keras.layers.core import Flatten 

77from tensorflow.python.keras.layers.core import RepeatVector 

78from tensorflow.python.keras.layers.core import Lambda 

79from tensorflow.python.keras.layers.core import Dense 

80from tensorflow.python.keras.layers.core import ActivityRegularization 

81 

82# Dense Attention layers. 

83from tensorflow.python.keras.layers.dense_attention import AdditiveAttention 

84from tensorflow.python.keras.layers.dense_attention import Attention 

85 

86# Embedding layers. 

87from tensorflow.python.keras.layers.embeddings import Embedding 

88 

89# Merge layers. 

90from tensorflow.python.keras.layers.merge import Add 

91from tensorflow.python.keras.layers.merge import Subtract 

92from tensorflow.python.keras.layers.merge import Multiply 

93from tensorflow.python.keras.layers.merge import Average 

94from tensorflow.python.keras.layers.merge import Maximum 

95from tensorflow.python.keras.layers.merge import Minimum 

96from tensorflow.python.keras.layers.merge import Concatenate 

97from tensorflow.python.keras.layers.merge import Dot 

98from tensorflow.python.keras.layers.merge import add 

99from tensorflow.python.keras.layers.merge import subtract 

100from tensorflow.python.keras.layers.merge import multiply 

101from tensorflow.python.keras.layers.merge import average 

102from tensorflow.python.keras.layers.merge import maximum 

103from tensorflow.python.keras.layers.merge import minimum 

104from tensorflow.python.keras.layers.merge import concatenate 

105from tensorflow.python.keras.layers.merge import dot 

106 

107# Pooling layers. 

108from tensorflow.python.keras.layers.pooling import MaxPooling1D 

109from tensorflow.python.keras.layers.pooling import MaxPooling2D 

110from tensorflow.python.keras.layers.pooling import MaxPooling3D 

111from tensorflow.python.keras.layers.pooling import AveragePooling1D 

112from tensorflow.python.keras.layers.pooling import AveragePooling2D 

113from tensorflow.python.keras.layers.pooling import AveragePooling3D 

114from tensorflow.python.keras.layers.pooling import GlobalAveragePooling1D 

115from tensorflow.python.keras.layers.pooling import GlobalAveragePooling2D 

116from tensorflow.python.keras.layers.pooling import GlobalAveragePooling3D 

117from tensorflow.python.keras.layers.pooling import GlobalMaxPooling1D 

118from tensorflow.python.keras.layers.pooling import GlobalMaxPooling2D 

119from tensorflow.python.keras.layers.pooling import GlobalMaxPooling3D 

120 

121# Pooling layer aliases. 

122from tensorflow.python.keras.layers.pooling import MaxPool1D 

123from tensorflow.python.keras.layers.pooling import MaxPool2D 

124from tensorflow.python.keras.layers.pooling import MaxPool3D 

125from tensorflow.python.keras.layers.pooling import AvgPool1D 

126from tensorflow.python.keras.layers.pooling import AvgPool2D 

127from tensorflow.python.keras.layers.pooling import AvgPool3D 

128from tensorflow.python.keras.layers.pooling import GlobalAvgPool1D 

129from tensorflow.python.keras.layers.pooling import GlobalAvgPool2D 

130from tensorflow.python.keras.layers.pooling import GlobalAvgPool3D 

131from tensorflow.python.keras.layers.pooling import GlobalMaxPool1D 

132from tensorflow.python.keras.layers.pooling import GlobalMaxPool2D 

133from tensorflow.python.keras.layers.pooling import GlobalMaxPool3D 

134 

135# Recurrent layers. 

136from tensorflow.python.keras.layers.recurrent import RNN 

137from tensorflow.python.keras.layers.recurrent import AbstractRNNCell 

138from tensorflow.python.keras.layers.recurrent import StackedRNNCells 

139from tensorflow.python.keras.layers.recurrent import SimpleRNNCell 

140from tensorflow.python.keras.layers.recurrent import PeepholeLSTMCell 

141from tensorflow.python.keras.layers.recurrent import SimpleRNN 

142 

143if tf2.enabled(): 

144 from tensorflow.python.keras.layers.recurrent import GRU as GRUV1 

145 from tensorflow.python.keras.layers.recurrent import GRUCell as GRUCellV1 

146 from tensorflow.python.keras.layers.recurrent import LSTM as LSTMV1 

147 from tensorflow.python.keras.layers.recurrent import LSTMCell as LSTMCellV1 

148else: 

149 from tensorflow.python.keras.layers.recurrent import GRU 

150 from tensorflow.python.keras.layers.recurrent import GRUCell 

151 from tensorflow.python.keras.layers.recurrent import LSTM 

152 from tensorflow.python.keras.layers.recurrent import LSTMCell 

153 GRUV1 = GRU 

154 GRUCellV1 = GRUCell 

155 LSTMV1 = LSTM 

156 LSTMCellV1 = LSTMCell 

157 

158# Convolutional-recurrent layers. 

159from tensorflow.python.keras.layers.convolutional_recurrent import ConvLSTM2D 

160 

161# # RNN Cell wrappers. 

162from tensorflow.python.keras.layers.rnn_cell_wrapper_v2 import DeviceWrapper 

163from tensorflow.python.keras.layers.rnn_cell_wrapper_v2 import DropoutWrapper 

164from tensorflow.python.keras.layers.rnn_cell_wrapper_v2 import ResidualWrapper 

165 

166# Serialization functions 

167from tensorflow.python.keras.layers import serialization 

168from tensorflow.python.keras.layers.serialization import deserialize 

169from tensorflow.python.keras.layers.serialization import serialize 

170 

171 

172class VersionAwareLayers(object): 

173 """Utility to be used internally to access layers in a V1/V2-aware fashion. 

174 

175 When using layers within the Keras codebase, under the constraint that 

176 e.g. `layers.BatchNormalization` should be the `BatchNormalization` version 

177 corresponding to the current runtime (TF1 or TF2), do not simply access 

178 `layers.BatchNormalization` since it would ignore e.g. an early 

179 `compat.v2.disable_v2_behavior()` call. Instead, use an instance 

180 of `VersionAwareLayers` (which you can use just like the `layers` module). 

181 """ 

182 

183 def __getattr__(self, name): 

184 serialization.populate_deserializable_objects() 

185 if name in serialization.LOCAL.ALL_OBJECTS: 

186 return serialization.LOCAL.ALL_OBJECTS[name] 

187 return super(VersionAwareLayers, self).__getattr__(name)