Merge pull request #27814 from Bharat123rox:update-elu
PiperOrigin-RevId: 315765454 Change-Id: I778ecaea90e3d857d2ab090f5a5770b156114819
This commit is contained in:
		
						commit
						12ae3da1b7
					
				@ -86,18 +86,49 @@ def softmax(x, axis=-1):
 | 
				
			|||||||
@keras_export('keras.activations.elu')
 | 
					@keras_export('keras.activations.elu')
 | 
				
			||||||
@dispatch.add_dispatch_support
 | 
					@dispatch.add_dispatch_support
 | 
				
			||||||
def elu(x, alpha=1.0):
 | 
					def elu(x, alpha=1.0):
 | 
				
			||||||
  """Exponential linear unit.
 | 
					  """Exponential Linear Unit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The exponential linear unit (ELU) with `alpha > 0` is:
 | 
				
			||||||
 | 
					  `x` if `x > 0` and
 | 
				
			||||||
 | 
					  `alpha * (exp(x) - 1)` if `x < 0`
 | 
				
			||||||
 | 
					  The ELU hyperparameter `alpha` controls the value to which an
 | 
				
			||||||
 | 
					  ELU saturates for negative net inputs. ELUs diminish the
 | 
				
			||||||
 | 
					  vanishing gradient effect.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ELUs have negative values which pushes the mean of the activations
 | 
				
			||||||
 | 
					  closer to zero.
 | 
				
			||||||
 | 
					  Mean activations that are closer to zero enable faster learning as they
 | 
				
			||||||
 | 
					  bring the gradient closer to the natural gradient.
 | 
				
			||||||
 | 
					  ELUs saturate to a negative value when the argument gets smaller.
 | 
				
			||||||
 | 
					  Saturation means a small derivative which decreases the variation
 | 
				
			||||||
 | 
					  and the information that is propagated to the next layer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Example Usage:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  >>> import tensorflow as tf
 | 
				
			||||||
 | 
					  >>> model = tf.keras.Sequential()
 | 
				
			||||||
 | 
					  >>> model.add(tf.keras.layers.Conv2D(32, (3, 3), activation='elu',
 | 
				
			||||||
 | 
					  ...          input_shape=(28, 28, 1)))
 | 
				
			||||||
 | 
					  >>> model.add(tf.keras.layers.MaxPooling2D((2, 2)))
 | 
				
			||||||
 | 
					  >>> model.add(tf.keras.layers.Conv2D(64, (3, 3), activation='elu'))
 | 
				
			||||||
 | 
					  >>> model.add(tf.keras.layers.MaxPooling2D((2, 2)))
 | 
				
			||||||
 | 
					  >>> model.add(tf.keras.layers.Conv2D(64, (3, 3), activation='elu'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <tensorflow.python.keras.engine.sequential.Sequential object ...>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Arguments:
 | 
					  Arguments:
 | 
				
			||||||
      x: Input tensor.
 | 
					      x: Input tensor.
 | 
				
			||||||
      alpha: A scalar, slope of negative section.
 | 
					      alpha: A scalar, slope of negative section. `alpha` controls the value to
 | 
				
			||||||
 | 
					        which an ELU saturates for negative net inputs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Returns:
 | 
					  Returns:
 | 
				
			||||||
      The exponential linear activation: `x` if `x > 0` and
 | 
					      The exponential linear unit (ELU) activation function: `x` if `x > 0` and
 | 
				
			||||||
        `alpha * (exp(x)-1)` if `x < 0`.
 | 
					      `alpha * (exp(x) - 1)` if `x < 0`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Reference:
 | 
					  Reference:
 | 
				
			||||||
      - [Clevert et al. 2016](https://arxiv.org/abs/1511.07289)
 | 
					      [Fast and Accurate Deep Network Learning by Exponential Linear Units
 | 
				
			||||||
 | 
					      (ELUs) (Clevert et al, 2016)](https://arxiv.org/abs/1511.07289)
 | 
				
			||||||
  """
 | 
					  """
 | 
				
			||||||
  return K.elu(x, alpha)
 | 
					  return K.elu(x, alpha)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user