SavedModel in C++ with Multiple Signatures gives "You must feed a value for placeholder tensor 'infer_float_board_state' with dtype float and shape [?,19,19,7]"
To call a specific signature, you need to use the **GetSignatures()** method to get a map of all available signatures and their corresponding input and output tensors. You can then use this map to create input and output tensor maps that you can pass to **Session::Run()**.
```
auto signatures = model_bundle_->GetSignatures();
auto& signature = signatures.at("sig_a");

// create input tensor map
tensorflow::Tensor input_tensor(tensorflow::DT_FLOAT, tensorflow::TensorShape({1, 1}));
auto input_tensor_map = std::map<std::string, tensorflow::Tensor>{{"sig_a_x:0", input_tensor}};

// create output tensor map
std::vector<tensorflow::Tensor> output_tensors;
for (const auto& output : signature.outputs()) {
  output_tensors.emplace_back();
  output_tensors.back().set_shape(output.second.shape());
}
auto output_tensor_map = std::map<std::string, tensorflow::Tensor>{{"StatefulPartitionedCall:0", output_tensors[0]}};

// run the session
model_bundle_->GetSession()->Run(input_tensor_map, output_tensor_map, {}, &output_tensors);
```
<details><summary>Click to expand!</summary> 
 
 ### Issue Type

Support

### Have you reproduced the bug with TF nightly?

No

### Source

source

### Tensorflow Version

2.11

### Custom Code

Yes

### OS Platform and Distribution

Debian GNU/Linux 10

### Mobile device

n/a

### Python version

3.9

### Bazel version

6.1.0

### GCC/Compiler version

LLVM 12

### CUDA/cuDNN version

n/a

### GPU model and memory

n/a

### Current Behaviour?

```shell
I have a Keras model that I save with 2 signatures--one for full precision, and one for mixed precision.

After loading in C++ and trying to run, I get this error:


You must feed a value for placeholder tensor 'infer_float_board_state' with dtype float and shape [?,19,19,7]
```

I see a method `GetSignatureDefs` in `SavedModelBundleLite`, but no way to actually use them. How can I call the signature that I actually need?
```


### Standalone code to reproduce the issue

```shell
Python


class Model(tf.keras.Model):
  def __init__(self): super(Model, self).__init__()
  def call(self, x):
    return x + 1.0

  @tf.function(input_signature=[
      tf.TensorSpec([None, 1], tf.float32),
  ])
  def sig_a(self, x):
    return self(x)

  @tf.function(input_signature=[
      tf.TensorSpec([None, 1], tf.float16),
  ])
  def sig_a(self, x):
    return self(x)


model.save(local_path,
                     signatures={
                         'sig_a': model.sig_a,
                         'sig_b': model.sig_b
                     })
```

C++

```
const static std::vector<std::string> kInputNames = {
    "sig_a_x:0"
};

const static std::vector<std::string> kPlaceHolderNames = {
    "sig_b_x:0"
};

const static std::vector<std::string> kOutputNames = {
    "StatefulPartitionedCall:0",
};

int main(int argc, char** argv) {
  model = LoadSavedModel(session_options_, run_options_, path,
                        {tensorflow::kSavedModelTagServe}, &model_bundle_);
  
  model.GetSession()->Run(<inputs>, <outputs>, <targets>, <output>);
}
```
```


### Relevant log output

```shell
2023-03-10 21:44:24.929526: E cc/scripts/play_model.cc:91] Eval Failed: 3, msg: You must feed a value for placeholder tensor 'infer_float_board_state' with dtype float and shape [?,19,19,7]
	 [[{{node infer_float_board_state}}]]
```
</details>