FPE in DepthwiseConv2D
Hi, I'm getting a different error for this:

```
./benchmark_model --graph=DepthwiseConv2D_FPE.tflite
2023-09-22 20:14:46.893112: I tensorflow/tools/benchmark/benchmark_model.cc:475] Graph: [DepthwiseConv2D_FPE.tflite]
2023-09-22 20:14:46.893195: I tensorflow/tools/benchmark/benchmark_model.cc:476] Init ops:
2023-09-22 20:14:46.893203: I tensorflow/tools/benchmark/benchmark_model.cc:477] Input layers: [input:0]
2023-09-22 20:14:46.893208: I tensorflow/tools/benchmark/benchmark_model.cc:478] Input shapes: [1,224,224,3]
2023-09-22 20:14:46.893237: I tensorflow/tools/benchmark/benchmark_model.cc:479] Input types: [float]
2023-09-22 20:14:46.893241: I tensorflow/tools/benchmark/benchmark_model.cc:480] Output layers: [output:0]
2023-09-22 20:14:46.893245: I tensorflow/tools/benchmark/benchmark_model.cc:481] Target layers: []
2023-09-22 20:14:46.893261: I tensorflow/tools/benchmark/benchmark_model.cc:482] Num runs: [1000]
2023-09-22 20:14:46.893271: I tensorflow/tools/benchmark/benchmark_model.cc:483] Inter-inference delay (seconds): [-1.0]
2023-09-22 20:14:46.893282: I tensorflow/tools/benchmark/benchmark_model.cc:484] Inter-benchmark delay (seconds): [-1.0]
2023-09-22 20:14:46.893293: I tensorflow/tools/benchmark/benchmark_model.cc:486] Num threads: [-1]
2023-09-22 20:14:46.893297: I tensorflow/tools/benchmark/benchmark_model.cc:487] Benchmark name: []
2023-09-22 20:14:46.893307: I tensorflow/tools/benchmark/benchmark_model.cc:488] Output prefix: []
2023-09-22 20:14:46.893323: I tensorflow/tools/benchmark/benchmark_model.cc:489] Show sizes: [0]
2023-09-22 20:14:46.893337: I tensorflow/tools/benchmark/benchmark_model.cc:490] Warmup runs: [1]
2023-09-22 20:14:46.893368: I tensorflow/tools/benchmark/benchmark_model.cc:256] Loading TensorFlow.
2023-09-22 20:14:46.893386: I tensorflow/tools/benchmark/benchmark_model.cc:264] Got config, 0 devices
2023-09-22 20:14:46.893446: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:337] Error parsing text-format tensorflow.GraphDef: 1:1: Invalid control characters encountered in text.
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:337] Error parsing text-format tensorflow.GraphDef: 1:9: Invalid control characters encountered in text.
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:337] Error parsing text-format tensorflow.GraphDef: 1:45: Interpreting non ascii codepoint 136.
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:337] Error parsing text-format tensorflow.GraphDef: 1:45: Message type "tensorflow.GraphDef" has no field named "TFL3".
2023-09-22 20:14:46.903702: E tensorflow/tools/benchmark/benchmark_model.cc:275] Could not create TensorFlow Graph: DATA_LOSS: Can't parse DepthwiseConv2D_FPE.tflite as text proto
2023-09-22 20:14:46.903741: I tensorflow/tools/benchmark/benchmark_model.cc:502] Initialized session in 0.010362s
```

Please note it's failing on this: [libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:337] Error parsing text-format tensorflow.GraphDef: 1:45: Interpreting non ascii codepoint 136.

I'm compiling from r2.14 and using gcc and bazel is up to date. This issue is stale because it has been open for 7 days with no activity. It will be closed if no further activity occurs. Thank you. This issue was closed because it has been inactive for 7 days since being marked as stale. Please reopen if you'd like to work on this further. Are you satisfied with the resolution of your issue?
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=Yes&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/61905">Yes</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=No&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/61905">No</a>
 I was able to replicate with updated steps:

```sh
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
mkdir tflite_build
cd tflite_build
cmake ../tensorflow_src/tensorflow/lite
cmake --build . -j
cmake --build . -j -t benchmark_model
cd tools/benchmark
cp path/to/DepthwiseConv2D_FPE.tflite .
./benchmark_model --graph=DepthwiseConv2D_FPE.tflite
```
```
./benchmark_model --graph=DepthwiseConv2D_FPE.tflite
INFO: STARTING!
INFO: Log parameter values verbosely: [0]
INFO: Graph: [DepthwiseConv2D_FPE.tflite]
INFO: Loaded model DepthwiseConv2D_FPE.tflite
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
INFO: The input model file size (MB): 0.000772
INFO: Initialized session in 1.153ms.
INFO: Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
Floating point exception
```

Hi @majiddadashi, can you please take a look? Thanks.
### Issue type

Bug

### Have you reproduced the bug with TensorFlow Nightly?

Yes

### Source

source

### TensorFlow version

tf 2.14.0

### Custom code

Yes

### OS platform and distribution

Ubuntu 18.04.6

### Mobile device

_No response_

### Python version

Python 3.8.3

### Bazel version

bazel 5.3.0

### GCC/compiler version

gcc 7.5.0

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

Construct a malicious model for the DepthwiseConv2D operator, setting the `stride_width` to greater than `0xffff`. When initializing the DepthwiseParams structure in depthwise_conv.cc, due to precision loss, `op_params.stride_width` becomes 0. `TfLiteDepthwiseConvParams::stride_width` is a 4-byte int type, while `DepthwiseParams::stride_width` is a 2-byte int type.
```
// depthwise_conv.cc
template <KernelType kernel_type>
TfLiteStatus EvalFloat(TfLiteContext* context, TfLiteNode* node,
                       TfLiteDepthwiseConvParams* params, OpData* data,
                       const TfLiteTensor* input, const TfLiteTensor* filter,
                       const TfLiteTensor* bias, TfLiteTensor* output) {
  float output_activation_min, output_activation_max;
  CalculateActivationRange(params->activation, &output_activation_min,
                           &output_activation_max);

  DepthwiseParams op_params;
  op_params.padding_type = PaddingType::kSame;
  op_params.padding_values.width = data->padding.width;
  op_params.padding_values.height = data->padding.height;
  op_params.stride_width = params->stride_width;    <== here
  op_params.stride_height = params->stride_height;
  op_params.dilation_width_factor = params->dilation_width_factor;
  op_params.dilation_height_factor = params->dilation_height_factor;
  op_params.float_activation_min = output_activation_min;
  op_params.float_activation_max = output_activation_max;
  TF_LITE_ENSURE_STATUS(ComputeDepthMultiplier(context, input, filter,
                                               &op_params.depth_multiplier));
```

The `stride` variable may be equal to 0, leading to a division by zero error.
```cpp
// depthwiseconv_float.h
inline void FloatDepthwiseConvAccumRowGeneric(
    int stride, int dilation_factor, int input_depth, int input_width,
    const float* input_data, int pad_width, int depth_multiplier,
    int filter_width, const float* filter_data, int out_x_buffer_start,
    int out_x_buffer_end, int output_depth, float* acc_buffer) {
  ruy::profiler::ScopeLabel label("DepthwiseConvAccumRowGeneric (slow)");
  const float* filter_base_ptr = filter_data;
  for (int filter_x = 0; filter_x < filter_width; ++filter_x) {
    const int out_x_loop_start = std::max(
        out_x_buffer_start,
        (pad_width - dilation_factor * filter_x + stride - 1) / stride);   // FPE
```

[DepthwiseConv2D_FPE.zip](https://github.com/tensorflow/tensorflow/files/12655660/DepthwiseConv2D_FPE.zip)


### Standalone code to reproduce the issue

```shell
When I use the benchmark tool for PoC validation, it causes the TensorFlow Lite inference process to be subjected to a DOS（coredump).

❯ ./benchmark_model --graph=../poc/DepthwiseConv2D_FPE.tflite
INFO: STARTING!
INFO: Log parameter values verbosely: [0]
INFO: Graph: [../poc/DepthwiseConv2D_FPE.tflite]
INFO: Loaded model ../poc/DepthwiseConv2D_FPE.tflite
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
INFO: The input model file size (MB): 0.000772
INFO: Initialized session in 14.64ms.
INFO: Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
[1]    9351 floating point exception (core dumped)  ./benchmark_model --graph=../poc/DepthwiseConv2D_FPE.tflite
```


### Relevant log output

_No response_