참고: 이 문서는 TensorFlow Hub 자체를 수정하는 데 관심이 있는 개발자를 위한 것입니다. TensorFlow Hub를 사용하려면 설치 지침을 참조하세요.
TensorFlow Hub pip 패키지를 변경하는 경우, 소스에서 pip 패키지를 다시 빌드하여 변경 사항을 시도해 볼 수 있습니다.
다음이 필요합니다.
- Python
- TensorFlow
- Git
- Bazel
또는 protobuf 컴파일러를 설치하는 경우, bazel을 사용하지 않고 변경 사항을 시도할 수 있습니다.
virtualenv 설정
virtualenv 활성화
virtualenv가 아직 설치되지 않은 경우 설치합니다.
~$ sudo apt-get install python-virtualenv
패키지 생성을 위한 가상 환경을 생성합니다.
~$ virtualenv --system-site-packages tensorflow_hub_env
활성화합니다.
~$ source ~/tensorflow_hub_env/bin/activate # bash, sh, ksh, or zsh
~$ source ~/tensorflow_hub_env/bin/activate.csh # csh or tcsh
TensorFlow Hub 저장소를 복제합니다.
(tensorflow_hub_env)~/$ git clone https://github.com/tensorflow/hub
(tensorflow_hub_env)~/$ cd hub
변경 사항 테스트하기
TensorFlow Hub의 테스트 실행하기
(tensorflow_hub_env)~/hub/$ bazel test tensorflow_hub:all
패키지 빌드 및 설치
TensorFlow Hub pip 패키징 스크립트 빌드하기
TensorFlow Hub용 pip 패키지를 빌드하려면:
(tensorflow_hub_env)~/hub/$ bazel build tensorflow_hub/pip_package:build_pip_package
TensorFlow Hub pip 패키지 만들기
(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg
pip 패키지 설치 및 테스트(선택 사항)
다음 명령을 실행하여 pip 패키지를 설치합니다.
(tensorflow_hub_env)~/hub/$ pip install /tmp/tensorflow_hub_pkg/*.whl
TensorFlow Hub 가져오기 테스트:
(tensorflow_hub_env)~/hub/$ cd .. # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
"개발자" 설치(실험용)
경고: TensorFlow를 실행하는 이 접근 방식은 실험적이며 TensorFlow Hub 팀에서 공식적으로 지원하지 않습니다.
bazel을 사용하여 패키지를 빌드하는 것이 공식적으로 지원되는 유일한 방법입니다. 그러나 bazel에 익숙하지 않은 경우, 오픈 소스 도구로 작업하는 것이 더 간단합니다. 이를 위해 패키지의 "개발자 설치"를 수행할 수 있습니다.
이 설치 방법을 사용하면 작업 디렉토리를 Python 환경에 설치할 수 있으므로 패키지를 가져올 때 지속적인 변경 사항이 반영됩니다.
리포지토리 설정
먼저 위에서 설명한 대로 virtualenv 및 리포지토리를 설정합니다.
protoc
설치
TensorFlow Hub는 protobufs를 사용하기 때문에 .proto
파일에서 필요한 python _pb2.py
파일을 생성하려면 protobuf 컴파일러가 필요합니다.
Mac
(tensorflow_hub_env)~/hub/$ brew install protobuf
Linux
(tensorflow_hub_env)~/hub/$ sudo apt install protobuf-compiler
.proto
파일 컴파일
처음에는 디렉토리에 _pb2.py
파일이 없습니다.
(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py
protoc
를 실행하여 생성합니다.
(tensorflow_hub_env)~/hub/$ protoc -I=tensorflow_hub --python_out=tensorflow_hub tensorflow_hub/*.proto
(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py
tensorflow_hub/image_module_info_pb2.py tensorflow_hub/module_attachment_pb2.py tensorflow_hub/module_def_pb2.py
참고: .proto
정의를 변경한 경우, _pb2.py
파일을 다시 컴파일하는 것을 잊지 마세요.
리포지토리에서 직접 가져오기
_pb2.py
파일이 제자리에 있으면 TensorFlow Hub 디렉터리에서 직접 수정을 시도할 수 있습니다.
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
"개발자" 모드로 설치하기
또는 리포지토리 루트의 외부에서 사용하려면 setup.py develop
설치를 사용할 수 있습니다.
(tensorflow_hub_env)~/hub/$ python tensorflow_hub/pip_package/setup.py develop
이제 각 새 변경 사항에 대해 pip 패키지를 다시 빌드하고 설치할 필요 없이 일반 Python virtualenv에서 로컬 변경 사항을 사용할 수 있습니다.
(tensorflow_hub_env)~/hub/$ cd .. # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
virtualenv 비활성화
(tensorflow_hub_env)~/hub/$ deactivate