     }
 
     @inlinable
-    @differentiable(wrt: self, vjp: _vjpSubscript)
+    @differentiable(wrt: self, vjp: _vjpSubscript where Scalar : TensorFlowFloatingPoint)
     internal subscript(_ indexPath: IndexPath) -> Tensor {
         get {
             return Raw.stridedSlice(


/// Returns a tensor with the same shape and scalars as the specified tensor.
@inlinable
@differentiable
public func identity<Scalar>(_ x: Tensor<Scalar>) -> Tensor<Scalar> {
    return x
}

    }

    @inlinable
    @differentiable(wrt: self where Scalar: TensorFlowFloatingPoint)
    subscript(_ ranges: TensorRangeExpression...) -> Tensor {
        get {
            return self[{IndexPath({ranges.map { $0.tensorRange }}())}()]
