1

Synatxnet を学習しようとしています。Dockerを介して実行しています。しかし、プログラム Synatxnet や Docker についてはあまり知りません。Github Sytaxnetページには、

SyntaxNet モデルは、ランタイム フラグ (簡単に変更できます) とテキスト形式の TaskSpec プロトコル バッファーの組み合わせによって構成されます。デモで使用されるスペック ファイルは、syntaxnet/models/parsey_mcparseface/context.pbtxt にあります。

編集する仕様ファイルを正確に見つけるにはどうすればよいですか?

これらの命令を使用して、Docker コンテナーで SyntaxNet をコンパイルしました。

FROM java:8

ENV SYNTAXNETDIR=/opt/tensorflow PATH=$PATH:/root/bin

RUN mkdir -p $SYNTAXNETDIR \
    && cd $SYNTAXNETDIR \
    && apt-get update \
    && apt-get install git zlib1g-dev file swig python2.7 python-dev python-pip -y \
    && pip install --upgrade pip \
    && pip install -U protobuf==3.0.0b2 \
    && pip install asciitree \
    && pip install numpy \
    && wget https://github.com/bazelbuild/bazel/releases/download/0.2.2b/bazel-0.2.2b-installer-linux-x86_64.sh \
    && chmod +x bazel-0.2.2b-installer-linux-x86_64.sh \
    && ./bazel-0.2.2b-installer-linux-x86_64.sh --user \
    && git clone --recursive https://github.com/tensorflow/models.git \
    && cd $SYNTAXNETDIR/models/syntaxnet/tensorflow \
    && echo "\n\n\n" | ./configure \
    && apt-get autoremove -y \
    && apt-get clean

RUN cd $SYNTAXNETDIR/models/syntaxnet \
    && bazel test --genrule_strategy=standalone syntaxnet/... util/utf8/...

WORKDIR $SYNTAXNETDIR/models/syntaxnet

CMD [ "sh", "-c", "echo 'Bob brought the pizza to Alice.' | syntaxnet/demo.sh" ]

# COMMANDS to build and run
# ===============================
# mkdir build && cp Dockerfile build/ && cd build
# docker build -t syntaxnet .
# docker run syntaxnet
4

1 に答える 1

0

まず、dockerfile のコマンド ラインをコメント アウトしてから、ホスト マシン上の空のディレクトリを作成して cd します。次に、イメージからコンテナーを作成し、コンテナー内のディレクトリをハード ドライブにマウントします。

docker run -it --rm -v / pwd:/tmp bash

これで、コンテナーに bash セッションが作成されます。スペックファイルをコピーします/tmp/opt/tensorflow/syntaxnet/models/parsey_mcparseface/context.pbtxt上記で提供した情報がそこにあると思います-イメージを構築するためのdockerfileを取得できないため、確認できません;いつでもfind . -name context.pbtxtルートから実行できますコンテナを終了します (ctrl-d またはexit)。

これで、ホストの hd にファイルを編集する準備が整いましたが、実際には実行中のコンテナーに入れたいと考えています。元のディレクトリにそのファイルのみが含まれている場合は、コンテナ内のそのパスにホスト ディレクトリをマウントするだけです。他のものが含まれている場合は、いわゆるブートストラップ スクリプトを使用して、ファイルをマウントされたディレクトリ (上記の例ではtmp) からホームの場所に移動できます。または、フラグを使用して spec ファイルの場所をソフトウェアに指示できる場合もありますが、それにはさらに調査が必要です。

于 2016-09-26T09:44:46.783 に答える