2016-09-23 33 views
0

我在學習Synatxnet。我通過Docker運行它。但是我對真正的Synatxnet或Docker程序知之甚少。在Github Sytaxnet page它說Syntaxnet spec文件和Docker?

的SyntaxNet模型通過的運行時 標誌(其是容易改變)和一個文本格式TaskSpec協議 緩衝器的組合構成。演示中使用的spec文件位於 syntaxnet/models/parsey_mcparseface/context.pbtxt中。

究竟如何找到規範文件進行編輯呢?

我在使用這些Instructions泊塢窗容器編譯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 
+0

你可以做任何你想要的,或多或少,通過碼頭工人,但你必須知道如何做到這一點。不幸的是,你的問題太模糊了,很難提供比這更多的幫助。如果你向我們展示了你的dockerfile,那麼也許我們可以告訴你如何繼續下去,但就目前而言,這個問題是無法回答的,所以我投票決定關閉它。如果您正確更新問題,我會刪除我的投票。 –

+0

對不起,我按照你的要求完成了。希望這可以更好地解釋它。 – 20GT

+0

我只是試着建築,dockerfile和失敗與錯誤的命令,以一生的時間去建立 –

回答

0

首先,註釋掉dockerfile中的命令行,然後創建並cd到主機上的空目錄。然後,您可以從圖像中創建一個容器,在容器內的硬盤驅動器的安裝目錄:

搬運工運行 - 它--rm -v/pwd:/ tmp目錄的bash

現在,您將有容器中的一個bash會話。規範文件複製到/tmp/opt/tensorflow/syntaxnet/models/parsey_mcparseface/context.pbtxt(我猜這就是它被賦予你上面提供的信息 - 我不能讓你dockerfile建立形象,所以我無法證實它,你總是可以運行find . -name context.pbtxt從根目錄找到它),然後退出容器(ctrl-d或exit)。

您現在對您的主機的HD Ready可編輯文件,但你真的希望它在運行的容器。如果它來自的目錄只包含該文件,那麼您可以簡單地將主機目錄掛載到該容器中的該路徑。如果它包含其他內容,則可以使用所謂的引導腳本將文件從掛載的目錄(在上面的示例中,即tmp)移動到其原始位置。或者,您也許可以通過標誌告訴軟件在哪裏找到spec文件,但這需要更多的研究。