Tensorflow-cpu-aws prevents building ARM/multi-arch containers from a x86 machine
@elfringham  Hi @celeste-zeng ,

The package `tensorflow-cpu-aws` is meant for `Arm/AArch64` processors and it can't be downloadable into `X86_64` architectures through pip. Pip will try to resolve the wheels suitable for that particular host platform and if it is not found then it raises the error like `no matching distribution found`. I am not sure whether there is a way and i doubt whether there is a universal wheel common for both architecture.

The pre built pip wheels for X86_64 built and maintained by tensorflow itself which you can install through `pip install tensorflow-cpu`  and this can be installed on x86_64 machines only.

Please refer the documentation [source](https://www.tensorflow.org/install/pip#linux:~:text=Nightly-,Note%3A%20Starting%20with%20TensorFlow%202.10%2C%20Linux%20CPU%2Dbuilds%20for%20Aarch64,package.%20See%20this%20blog%20post%20for%20more%20information%20about%20this%20collaboration.,-conda%20install%20%2D) for more details.

May be @elfringham can add some more valuable points here.

Thanks! This does not look like a problem that is specific to TensorFlow. I think your problem is all about creating a docker container for a foreign architecture from your x86 machine. In order to do that you need to add qemu to the mix so that there is an environment that allows the docker container to execute.
See https://www.docker.com/blog/multi-platform-docker-builds/ @celeste-zeng ,

Referring to above [comment](https://github.com/tensorflow/tensorflow/issues/60751#issuecomment-1573591885) have you made any progress ? I too of the opinion that this is not a Tensorflow relevant issue if you are looking for what mentioned in above comment. WDYT ?
 Hi @SuryanarayanaY ,

Thanks for following up!

And yes I don't think it is a Tensorflow relevant issue.The fix is that when building an ARM container with tensorflow from an x86 machine, tensorflow-cpu-aws needs to be explicitly added to the requirements as well.
 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/60751">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/60751">No</a>

<details><summary>Click to expand!</summary> 
 
 ### Issue Type

Bug

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

No

### Source

source

### Tensorflow Version

2.12

### Custom Code

Yes

### OS Platform and Distribution

Linux Debian 6.1.20-2rodete1

### Mobile device

_No response_

### Python version

Python 3.8.9

### Bazel version

_No response_

### GCC/Compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current Behaviour?

On a x86 machine, I tried to build Beam Python multi-arch containers whose base image requirement include [tensorflow2.12](https://github.com/apache/beam/blob/4f07cda050cd144a95a686c4138307e9920f313d/sdks/python/container/py310/base_image_requirements.txt#LL143C24-L143C24). The x86 components were built successfully but encountered the following error while building the ARM components:

`#39 [linux/arm64 beam 11/16] RUN pip check || (echo "Container does not include required Beam dependencies or has conflicting dependencies. If Beam dependencies have changed, you need to regenerate base_image_requirements.txt files. See: https://s.apache.org/beam-python-requirements-generate" && exit 1) #39 20.81 tensorflow 2.12.0 requires tensorflow-cpu-aws, which is not installed.`

I also tried to install tensorflow-cpu-aws manually by running pip install tensorflow-cpu-aws on the x86 machine and got the following error: `ERROR: Could not find a version that satisfies the requirement tensorflow-cpu-aws (from versions: none) ERROR: No matching distribution found for tensorflow-cpu-aws`

An ARM container image required tensorflow can't be built from a x86 machine because it will try to install tensorflow-cpu-aws, which can't be installed from a x86 machine.

I wonder if it is there anything we can do to resolve this? Otherwise for all ARM containers which are built from a x86 machine, their base image requirements can't contain tensorflow.

Thanks!

### Standalone code to reproduce the issue

```shell
On terminal:
1. Clone the Beam repository: git clone https://github.com/apache/beam.git
2. Build the multi-arch image by running: ./gradlew -Pcontainer-architecture-list=arm64,amd64 :sdks:python:container:py310:docker
```


### Relevant log output

_No response_</details>