Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle
提交
f5c70bf6
P
Paddle
项目概览
PaddlePaddle
/
Paddle
1 年多 前同步成功
通知
2302
Star
20931
Fork
5422
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1423
列表
看板
标记
里程碑
合并请求
543
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1,423
Issue
1,423
列表
看板
标记
里程碑
合并请求
543
合并请求
543
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f5c70bf6
编写于
3月 02, 2017
作者:
L
Luo Tao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into mnist
上级
d935d88d
a2a5f4af
变更
12
展开全部
隐藏空白更改
内联
并排
Showing
12 changed file
with
3368 addition
and
55 deletion
+3368
-55
.travis.yml
.travis.yml
+1
-1
demo/mnist/api_train_v2.py
demo/mnist/api_train_v2.py
+13
-0
paddle/scripts/docker/Dockerfile
paddle/scripts/docker/Dockerfile
+29
-18
paddle/scripts/docker/Dockerfile.gpu
paddle/scripts/docker/Dockerfile.gpu
+29
-18
paddle/scripts/docker/root/.bashrc
paddle/scripts/docker/root/.bashrc
+46
-0
paddle/scripts/docker/root/.gitconfig
paddle/scripts/docker/root/.gitconfig
+43
-0
paddle/scripts/docker/root/.scripts/git-completion.sh
paddle/scripts/docker/root/.scripts/git-completion.sh
+2663
-0
paddle/scripts/docker/root/.scripts/git-prompt.sh
paddle/scripts/docker/root/.scripts/git-prompt.sh
+445
-0
python/paddle/v2/__init__.py
python/paddle/v2/__init__.py
+5
-1
python/paddle/v2/dataset/mnist.py
python/paddle/v2/dataset/mnist.py
+15
-14
python/paddle/v2/inferencer.py
python/paddle/v2/inferencer.py
+59
-0
python/paddle/v2/reader/decorator.py
python/paddle/v2/reader/decorator.py
+20
-3
未找到文件。
.travis.yml
浏览文件 @
f5c70bf6
...
@@ -57,7 +57,7 @@ before_install:
...
@@ -57,7 +57,7 @@ before_install:
-
if [[ "$JOB" == "PRE_COMMIT" ]]; then sudo ln -s /usr/bin/clang-format-3.8 /usr/bin/clang-format; fi
-
if [[ "$JOB" == "PRE_COMMIT" ]]; then sudo ln -s /usr/bin/clang-format-3.8 /usr/bin/clang-format; fi
# Paddle is using protobuf 3.1 currently. Protobuf 3.2 breaks the compatibility. So we specify the python
# Paddle is using protobuf 3.1 currently. Protobuf 3.2 breaks the compatibility. So we specify the python
# protobuf version.
# protobuf version.
-
pip install numpy wheel 'protobuf==3.1' sphinx recommonmark sphinx
_rtd_theme
virtualenv pre-commit requests==2.9.2 LinkChecker
-
pip install numpy wheel 'protobuf==3.1' sphinx recommonmark sphinx
-rtd-theme==0.1.9
virtualenv pre-commit requests==2.9.2 LinkChecker
script
:
script
:
-
paddle/scripts/travis/main.sh
-
paddle/scripts/travis/main.sh
notifications
:
notifications
:
...
...
demo/mnist/api_train_v2.py
浏览文件 @
f5c70bf6
...
@@ -97,6 +97,19 @@ def main():
...
@@ -97,6 +97,19 @@ def main():
event_handler
=
event_handler
,
event_handler
=
event_handler
,
num_passes
=
100
)
num_passes
=
100
)
# output is a softmax layer. It returns probabilities.
# Shape should be (100, 10)
probs
=
paddle
.
infer
(
output
=
inference
,
parameters
=
parameters
,
reader
=
paddle
.
reader
.
batched
(
paddle
.
reader
.
firstn
(
paddle
.
reader
.
map_readers
(
lambda
item
:
(
item
[
0
],
),
paddle
.
dataset
.
mnist
.
test
()),
n
=
100
),
batch_size
=
32
))
print
probs
.
shape
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
main
()
main
()
paddle/scripts/docker/Dockerfile
浏览文件 @
f5c70bf6
...
@@ -5,38 +5,50 @@ ARG DEBIAN_FRONTEND=noninteractive
...
@@ -5,38 +5,50 @@ ARG DEBIAN_FRONTEND=noninteractive
ARG
UBUNTU_MIRROR
ARG
UBUNTU_MIRROR
RUN
/bin/bash
-c
'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i '
s#http://archive.ubuntu.com#
${
UBUNTU_MIRROR
}
#g' /etc/apt/sources.list; fi'
RUN
/bin/bash
-c
'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i '
s#http://archive.ubuntu.com#
${
UBUNTU_MIRROR
}
#g' /etc/apt/sources.list; fi'
# ENV variables
ARG
BUILD_WOBOQ
ARG
BUILD_AND_INSTALL
ARG
WITH_AVX
ARG
WITH_DOC
ARG
WITH_STYLE_CHECK
ENV
BUILD_WOBOQ=${BUILD_WOBOQ:-OFF}
ENV
BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF}
ENV
WITH_GPU=OFF
ENV
WITH_AVX=${WITH_AVX:-ON}
ENV
WITH_DOC=${WITH_DOC:-OFF}
ENV
WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
ENV
HOME /root
# Add bash enhancements
COPY
./paddle/scripts/docker/root/ /root/
RUN
apt-get update
&&
\
RUN
apt-get update
&&
\
apt-get
install
-y
git python-pip python-dev openssh-server bison
&&
\
apt-get
install
-y
git python-pip python-dev openssh-server bison
&&
\
apt-get
install
-y
wget unzip
tar
xz-utils bzip2
gzip
coreutils
&&
\
apt-get
install
-y
wget unzip
tar
xz-utils bzip2
gzip
coreutils
&&
\
apt-get
install
-y
curl
sed grep
graphviz libjpeg-dev zlib1g-dev
&&
\
apt-get
install
-y
curl
sed grep
graphviz libjpeg-dev zlib1g-dev
&&
\
apt-get
install
-y
python-numpy python-matplotlib gcc g++ gfortran
&&
\
apt-get
install
-y
python-numpy python-matplotlib gcc g++ gfortran
&&
\
apt-get
install
-y
automake
&&
\
apt-get
install
-y
automake
locales clang-format-3.8
&&
\
apt-get clean
-y
apt-get clean
-y
# git credential to skip password typing
RUN
git config
--global
credential.helper store
# Fix locales to en_US.UTF-8
RUN
localedef
-i
en_US
-f
UTF-8 en_US.UTF-8
RUN
pip
install
--upgrade
pip
&&
\
RUN
pip
install
--upgrade
pip
&&
\
pip
install
-U
"protobuf==3.1.0"
&&
\
pip
install
-U
'protobuf==3.1.0'
&&
\
pip
install
-U
wheel pillow BeautifulSoup
&&
\
pip
install
-U
wheel pillow BeautifulSoup
&&
\
pip
install
-U
docopt PyYAML sphinx
&&
\
pip
install
-U
docopt PyYAML sphinx
&&
\
pip
install
-U
sphinx_rtd_theme recommonmark jupyter
pip
install
-U
sphinx-rtd-theme
==
0.1.9 recommonmark
&&
\
pip
install
-U
pre-commit
'requests==2.9.2'
jupyter
RUN
curl
-sSL
https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz |
tar
-xz
&&
\
RUN
curl
-sSL
https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz |
tar
-xz
&&
\
cd
cmake-3.4.1
&&
./bootstrap
&&
make
-j
`
nproc
`
&&
make
install
&&
\
cd
cmake-3.4.1
&&
./bootstrap
&&
make
-j
`
nproc
`
&&
make
install
&&
\
cd
..
&&
rm
-rf
cmake-3.4.1
cd
..
&&
rm
-rf
cmake-3.4.1
ARG
BUILD_WOBOQ
ARG
BUILD_AND_INSTALL
ARG
WITH_AVX
ARG
WITH_DOC
ARG
WITH_STYLE_CHECK
ENV
BUILD_WOBOQ=${BUILD_WOBOQ:-OFF}
ENV
BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF}
ENV
WITH_GPU=OFF
ENV
WITH_AVX=${WITH_AVX:-ON}
ENV
WITH_DOC=${WITH_DOC:-OFF}
ENV
WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
RUN
mkdir
/paddle
COPY
. /paddle/
COPY
. /paddle/
RUN
/paddle/paddle/scripts/docker/build.sh
RUN
/paddle/paddle/scripts/docker/build.sh
VOLUME
["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"]
VOLUME
["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"]
...
@@ -53,7 +65,6 @@ RUN mkdir /notes/
...
@@ -53,7 +65,6 @@ RUN mkdir /notes/
WORKDIR
"/notes"
WORKDIR
"/notes"
EXPOSE
8888
EXPOSE
8888
RUN
mkdir
-p
/opt/bin
COPY
./paddle/scripts/docker/entrypoint /opt/bin/
COPY
./paddle/scripts/docker/entrypoint /opt/bin/
CMD
["/opt/bin/entrypoint"]
CMD
["/opt/bin/entrypoint"]
paddle/scripts/docker/Dockerfile.gpu
浏览文件 @
f5c70bf6
...
@@ -5,38 +5,50 @@ ARG DEBIAN_FRONTEND=noninteractive
...
@@ -5,38 +5,50 @@ ARG DEBIAN_FRONTEND=noninteractive
ARG UBUNTU_MIRROR
ARG UBUNTU_MIRROR
RUN /bin/bash -c 'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i 's#http://archive.ubuntu.com#${UBUNTU_MIRROR}#g' /etc/apt/sources.list; fi'
RUN /bin/bash -c 'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i 's#http://archive.ubuntu.com#${UBUNTU_MIRROR}#g' /etc/apt/sources.list; fi'
# ENV variables
ARG BUILD_WOBOQ
ARG BUILD_AND_INSTALL
ARG WITH_AVX
ARG WITH_DOC
ARG WITH_STYLE_CHECK
ENV BUILD_WOBOQ=${BUILD_WOBOQ:-OFF}
ENV BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF}
ENV WITH_GPU=ON
ENV WITH_AVX=${WITH_AVX:-ON}
ENV WITH_DOC=${WITH_DOC:-OFF}
ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
ENV HOME /root
# Add bash enhancements
COPY ./paddle/scripts/docker/root/ /root/
RUN apt-get update && \
RUN apt-get update && \
apt-get install -y git python-pip python-dev openssh-server bison && \
apt-get install -y git python-pip python-dev openssh-server bison && \
apt-get install -y wget unzip tar xz-utils bzip2 gzip coreutils && \
apt-get install -y wget unzip tar xz-utils bzip2 gzip coreutils && \
apt-get install -y curl sed grep graphviz libjpeg-dev zlib1g-dev && \
apt-get install -y curl sed grep graphviz libjpeg-dev zlib1g-dev && \
apt-get install -y python-numpy python-matplotlib gcc g++ gfortran && \
apt-get install -y python-numpy python-matplotlib gcc g++ gfortran && \
apt-get install -y automake && \
apt-get install -y automake
locales clang-format-3.8
&& \
apt-get clean -y
apt-get clean -y
# git credential to skip password typing
RUN git config --global credential.helper store
# Fix locales to en_US.UTF-8
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
RUN pip install --upgrade pip && \
RUN pip install --upgrade pip && \
pip install -U
"protobuf==3.1.0"
&& \
pip install -U
'protobuf==3.1.0'
&& \
pip install -U wheel pillow BeautifulSoup && \
pip install -U wheel pillow BeautifulSoup && \
pip install -U docopt PyYAML sphinx && \
pip install -U docopt PyYAML sphinx && \
pip install -U sphinx_rtd_theme recommonmark jupyter
pip install -U sphinx-rtd-theme==0.1.9 recommonmark && \
pip install -U pre-commit 'requests==2.9.2' jupyter
RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
cd cmake-3.4.1 && ./bootstrap && make -j `nproc` && make install && \
cd cmake-3.4.1 && ./bootstrap && make -j `nproc` && make install && \
cd .. && rm -rf cmake-3.4.1
cd .. && rm -rf cmake-3.4.1
ARG BUILD_WOBOQ
ARG BUILD_AND_INSTALL
ARG WITH_AVX
ARG WITH_DOC
ARG WITH_STYLE_CHECK
ENV BUILD_WOBOQ=${BUILD_WOBOQ:-OFF}
ENV BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF}
ENV WITH_GPU=ON
ENV WITH_AVX=${WITH_AVX:-ON}
ENV WITH_DOC=${WITH_DOC:-OFF}
ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
RUN mkdir /paddle
COPY . /paddle/
COPY . /paddle/
RUN /paddle/paddle/scripts/docker/build.sh
RUN /paddle/paddle/scripts/docker/build.sh
VOLUME ["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"]
VOLUME ["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"]
...
@@ -53,7 +65,6 @@ RUN mkdir /notes/
...
@@ -53,7 +65,6 @@ RUN mkdir /notes/
WORKDIR "/notes"
WORKDIR "/notes"
EXPOSE 8888
EXPOSE 8888
RUN mkdir -p /opt/bin
COPY ./paddle/scripts/docker/entrypoint /opt/bin/
COPY ./paddle/scripts/docker/entrypoint /opt/bin/
CMD ["/opt/bin/entrypoint"]
CMD ["/opt/bin/entrypoint"]
paddle/scripts/docker/root/.bashrc
0 → 100755
浏览文件 @
f5c70bf6
# Locales
export
LC_ALL
=
en_US.UTF-8
export
LANG
=
en_US.UTF-8
export
LANGUAGE
=
en_US.UTF-8
# Aliases
alias rm
=
'rm -i'
alias cp
=
'cp -i'
alias mv
=
'mv -i'
alias ls
=
'ls -hFG'
alias
l
=
'ls -lF'
alias
ll
=
'ls -alF'
alias
lt
=
'ls -ltrF'
alias
ll
=
'ls -alF'
alias
lls
=
'ls -alSrF'
alias
llt
=
'ls -altrF'
# Colorize directory listing
alias ls
=
"ls -ph --color=auto"
# Colorize grep
if
echo
hello|grep
--color
=
auto l
>
/dev/null 2>&1
;
then
export
GREP_OPTIONS
=
"--color=auto"
GREP_COLOR
=
"1;31"
fi
# Shell
export
CLICOLOR
=
"1"
YELLOW
=
"
\[\0
33[1;33m
\]
"
NO_COLOUR
=
"
\[\0
33[0m
\]
"
GREEN
=
"
\[\0
33[1;32m
\]
"
WHITE
=
"
\[\0
33[1;37m
\]
"
source
~/.scripts/git-prompt.sh
export
PS1
=
"
\[\0
33[1;33m
\]
λ
$WHITE
\h
$GREEN
\w
$YELLOW
\$
(__git_ps1
\"
\[\0
33[35m
\]
{
\[\0
33[36m
\]
%s
\[\0
33[35m
\]
}
\"
)
$NO_COLOUR
"
# Git
source
~/.scripts/git-completion.sh
paddle/scripts/docker/root/.gitconfig
0 → 100755
浏览文件 @
f5c70bf6
[user]
name
=
email
=
[alias]
st
=
status --branch --short
ci
=
commit
br
=
branch
co
=
checkout
df
=
diff
l
=
log --pretty=format:
\"
%h %ad | %s%d [%an]
\"
--graph --date=short
ll
=
log --stat
[merge]
tool
=
vimdiff
[core]
excludesfile
=
~/.gitignore
editor
=
vim
[color]
branch
=
auto
diff
=
auto
status
=
auto
[color "branch"]
current
=
yellow reverse
local
=
yellow
remote
=
green
[color "diff"]
meta
=
yellow bold
frag
=
magenta bold
old
=
red bold
new
=
green bold
[color "status"]
added
=
yellow
changed
=
green
untracked
=
cyan
[push]
default
=
matching
\ No newline at end of file
paddle/scripts/docker/root/.scripts/git-completion.sh
0 → 100755
浏览文件 @
f5c70bf6
此差异已折叠。
点击以展开。
paddle/scripts/docker/root/.scripts/git-prompt.sh
0 → 100755
浏览文件 @
f5c70bf6
# bash/zsh git prompt support
#
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
# Distributed under the GNU General Public License, version 2.0.
#
# This script allows you to see repository status in your prompt.
#
# To enable:
#
# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
# 2) Add the following line to your .bashrc/.zshrc:
# source ~/.git-prompt.sh
# 3a) Change your PS1 to call __git_ps1 as
# command-substitution:
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
# the optional argument will be used as format string.
# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can
# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
# with two parameters, <pre> and <post>, which are strings
# you would put in $PS1 before and after the status string
# generated by the git-prompt machinery. e.g.
# Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
# will show username, at-sign, host, colon, cwd, then
# various status string, followed by dollar and SP, as
# your prompt.
# ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
# will show username, pipe, then various status string,
# followed by colon, cwd, dollar and SP, as your prompt.
# Optionally, you can supply a third argument with a printf
# format string to finetune the output of the branch status
#
# The repository status will be displayed only if you are currently in a
# git repository. The %s token is the placeholder for the shown status.
#
# The prompt status always includes the current branch name.
#
# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
# unstaged (*) and staged (+) changes will be shown next to the branch
# name. You can configure this per-repository with the
# bash.showDirtyState variable, which defaults to true once
# GIT_PS1_SHOWDIRTYSTATE is enabled.
#
# You can also see if currently something is stashed, by setting
# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
# then a '$' will be shown next to the branch name.
#
# If you would like to see if there're untracked files, then you can set
# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
# files, then a '%' will be shown next to the branch name. You can
# configure this per-repository with the bash.showUntrackedFiles
# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
# enabled.
#
# If you would like to see the difference between HEAD and its upstream,
# set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates you are behind, ">"
# indicates you are ahead, "<>" indicates you have diverged and "="
# indicates that there is no difference. You can further control
# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
# of values:
#
# verbose show number of commits ahead/behind (+/-) upstream
# legacy don't use the '--count' option available in recent
# versions of git-rev-list
# git always compare HEAD to @{upstream}
# svn always compare HEAD to your SVN upstream
#
# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
# find one, or @{upstream} otherwise. Once you have set
# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
# setting the bash.showUpstream config variable.
#
# If you would like to see more information about the identity of
# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
# to one of these values:
#
# contains relative to newer annotated tag (v1.6.3.2~35)
# branch relative to newer tag or branch (master~4)
# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
# default exactly matching tag
#
# If you would like a colored hint about the current dirty state, set
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
# the colored output of "git status -sb" and are available only when
# using __git_ps1 for PROMPT_COMMAND or precmd.
# stores the divergence from upstream in $p
# used by GIT_PS1_SHOWUPSTREAM
__git_ps1_show_upstream
()
{
local
key value
local
svn_remote svn_url_pattern count n
local
upstream
=
git
legacy
=
""
verbose
=
""
svn_remote
=()
# get some config options from git-config
local
output
=
"
$(
git config
-z
--get-regexp
'^(svn-remote\..*\.url|bash\.showupstream)$'
2>/dev/null |
tr
'\0\n'
'\n '
)
"
while
read
-r
key value
;
do
case
"
$key
"
in
bash.showupstream
)
GIT_PS1_SHOWUPSTREAM
=
"
$value
"
if
[[
-z
"
${
GIT_PS1_SHOWUPSTREAM
}
"
]]
;
then
p
=
""
return
fi
;;
svn-remote.
*
.url
)
svn_remote[
$((${#
svn_remote
[@]
}
+
1
))
]=
"
$value
"
svn_url_pattern+
=
"
\\
|
$value
"
upstream
=
svn+git
# default upstream is SVN if available, else git
;;
esac
done
<<<
"
$output
"
# parse configuration values
for
option
in
${
GIT_PS1_SHOWUPSTREAM
}
;
do
case
"
$option
"
in
git|svn
)
upstream
=
"
$option
"
;;
verbose
)
verbose
=
1
;;
legacy
)
legacy
=
1
;;
esac
done
# Find our upstream
case
"
$upstream
"
in
git
)
upstream
=
"@{upstream}"
;;
svn
*
)
# get the upstream from the "git-svn-id: ..." in a commit message
# (git-svn uses essentially the same procedure internally)
local
-a
svn_upstream
svn_upstream
=(
$(
git log
--first-parent
-1
\
--grep
=
"^git-svn-id:
\(
${
svn_url_pattern
#??
}
\)
"
2>/dev/null
)
)
if
[[
0
-ne
${#
svn_upstream
[@]
}
]]
;
then
svn_upstream
=
${
svn_upstream
[
${#
svn_upstream
[@]
}
- 2]
}
svn_upstream
=
${
svn_upstream
%@*
}
local
n_stop
=
"
${#
svn_remote
[@]
}
"
for
((
n
=
1
;
n <
=
n_stop
;
n++
))
;
do
svn_upstream
=
${
svn_upstream
#
${
svn_remote
[
$n
]
}}
done
if
[[
-z
"
$svn_upstream
"
]]
;
then
# default branch name for checkouts with no layout:
upstream
=
${
GIT_SVN_ID
:-
git
-svn
}
else
upstream
=
${
svn_upstream
#/
}
fi
elif
[[
"svn+git"
=
"
$upstream
"
]]
;
then
upstream
=
"@{upstream}"
fi
;;
esac
# Find how many commits we are ahead/behind our upstream
if
[[
-z
"
$legacy
"
]]
;
then
count
=
"
$(
git rev-list
--count
--left-right
\
"
$upstream
"
...HEAD 2>/dev/null
)
"
else
# produce equivalent output to --count for older versions of git
local
commits
if
commits
=
"
$(
git rev-list
--left-right
"
$upstream
"
...HEAD 2>/dev/null
)
"
then
local
commit
behind
=
0
ahead
=
0
for
commit
in
$commits
do
case
"
$commit
"
in
"<"
*
)
((
behind++
))
;;
*
)
((
ahead++
))
;;
esac
done
count
=
"
$behind
$ahead
"
else
count
=
""
fi
fi
# calculate the result
if
[[
-z
"
$verbose
"
]]
;
then
case
"
$count
"
in
""
)
# no upstream
p
=
""
;;
"0 0"
)
# equal to upstream
p
=
"="
;;
"0 "
*
)
# ahead of upstream
p
=
">"
;;
*
" 0"
)
# behind upstream
p
=
"<"
;;
*
)
# diverged from upstream
p
=
"<>"
;;
esac
else
case
"
$count
"
in
""
)
# no upstream
p
=
""
;;
"0 0"
)
# equal to upstream
p
=
" u="
;;
"0 "
*
)
# ahead of upstream
p
=
" u+
${
count
#0
}
"
;;
*
" 0"
)
# behind upstream
p
=
" u-
${
count
% 0
}
"
;;
*
)
# diverged from upstream
p
=
" u+
${
count
#*
}
-
${
count
% *
}
"
;;
esac
fi
}
# Helper function that is meant to be called from __git_ps1. It
# injects color codes into the appropriate gitstring variables used
# to build a gitstring.
__git_ps1_colorize_gitstring
()
{
if
[[
-n
${
ZSH_VERSION
-
}
]]
;
then
local
c_red
=
'%F{red}'
local
c_green
=
'%F{green}'
local
c_lblue
=
'%F{blue}'
local
c_clear
=
'%f'
else
# Using \[ and \] around colors is necessary to prevent
# issues with command line editing/browsing/completion!
local
c_red
=
'\[\e[31m\]'
local
c_green
=
'\[\e[32m\]'
local
c_lblue
=
'\[\e[1;34m\]'
local
c_clear
=
'\[\e[0m\]'
fi
local
bad_color
=
$c_red
local
ok_color
=
$c_green
local
flags_color
=
"
$c_lblue
"
local
branch_color
=
""
if
[
$detached
=
no
]
;
then
branch_color
=
"
$ok_color
"
else
branch_color
=
"
$bad_color
"
fi
c
=
"
$branch_color$c
"
z
=
"
$c_clear$z
"
if
[
"
$w
"
=
"*"
]
;
then
w
=
"
$bad_color$w
"
fi
if
[
-n
"
$i
"
]
;
then
i
=
"
$ok_color$i
"
fi
if
[
-n
"
$s
"
]
;
then
s
=
"
$flags_color$s
"
fi
if
[
-n
"
$u
"
]
;
then
u
=
"
$bad_color$u
"
fi
r
=
"
$c_clear$r
"
}
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
# when called from PS1 using command substitution
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
#
# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
# when two arguments are given, the first is prepended and the second appended
# to the state string when assigned to PS1.
# The optional third parameter will be used as printf format string to further
# customize the output of the git-status string.
# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
__git_ps1
()
{
local
pcmode
=
no
local
detached
=
no
local
ps1pc_start
=
'\u@\h:\w '
local
ps1pc_end
=
'\$ '
local
printf_format
=
' (%s)'
case
"$#"
in
2|3
)
pcmode
=
yes
ps1pc_start
=
"
$1
"
ps1pc_end
=
"
$2
"
printf_format
=
"
${
3
:-
$printf_format
}
"
;;
0|1
)
printf_format
=
"
${
1
:-
$printf_format
}
"
;;
*
)
return
;;
esac
local
repo_info rev_parse_exit_code
repo_info
=
"
$(
git rev-parse
--git-dir
--is-inside-git-dir
\
--is-bare-repository
--is-inside-work-tree
\
--short
HEAD 2>/dev/null
)
"
rev_parse_exit_code
=
"
$?
"
if
[
-z
"
$repo_info
"
]
;
then
if
[
$pcmode
=
yes
]
;
then
#In PC mode PS1 always needs to be set
PS1
=
"
$ps1pc_start$ps1pc_end
"
fi
return
fi
local
short_sha
if
[
"
$rev_parse_exit_code
"
=
"0"
]
;
then
short_sha
=
"
${
repo_info
##*
$'
\n
'
}
"
repo_info
=
"
${
repo_info
%
$'
\n
'
*
}
"
fi
local
inside_worktree
=
"
${
repo_info
##*
$'
\n
'
}
"
repo_info
=
"
${
repo_info
%
$'
\n
'
*
}
"
local
bare_repo
=
"
${
repo_info
##*
$'
\n
'
}
"
repo_info
=
"
${
repo_info
%
$'
\n
'
*
}
"
local
inside_gitdir
=
"
${
repo_info
##*
$'
\n
'
}
"
local
g
=
"
${
repo_info
%
$'
\n
'
*
}
"
local
r
=
""
local
b
=
""
local
step
=
""
local
total
=
""
if
[
-d
"
$g
/rebase-merge"
]
;
then
read
b 2>/dev/null <
"
$g
/rebase-merge/head-name"
read
step 2>/dev/null <
"
$g
/rebase-merge/msgnum"
read
total 2>/dev/null <
"
$g
/rebase-merge/end"
if
[
-f
"
$g
/rebase-merge/interactive"
]
;
then
r
=
"|REBASE-i"
else
r
=
"|REBASE-m"
fi
else
if
[
-d
"
$g
/rebase-apply"
]
;
then
read
step 2>/dev/null <
"
$g
/rebase-apply/next"
read
total 2>/dev/null <
"
$g
/rebase-apply/last"
if
[
-f
"
$g
/rebase-apply/rebasing"
]
;
then
read
b 2>/dev/null <
"
$g
/rebase-apply/head-name"
r
=
"|REBASE"
elif
[
-f
"
$g
/rebase-apply/applying"
]
;
then
r
=
"|AM"
else
r
=
"|AM/REBASE"
fi
elif
[
-f
"
$g
/MERGE_HEAD"
]
;
then
r
=
"|MERGING"
elif
[
-f
"
$g
/CHERRY_PICK_HEAD"
]
;
then
r
=
"|CHERRY-PICKING"
elif
[
-f
"
$g
/REVERT_HEAD"
]
;
then
r
=
"|REVERTING"
elif
[
-f
"
$g
/BISECT_LOG"
]
;
then
r
=
"|BISECTING"
fi
if
[
-n
"
$b
"
]
;
then
:
elif
[
-h
"
$g
/HEAD"
]
;
then
# symlink symbolic ref
b
=
"
$(
git symbolic-ref HEAD 2>/dev/null
)
"
else
local head
=
""
if
!
read head
2>/dev/null <
"
$g
/HEAD"
;
then
if
[
$pcmode
=
yes
]
;
then
PS1
=
"
$ps1pc_start$ps1pc_end
"
fi
return
fi
# is it a symbolic ref?
b
=
"
${
head
#ref
:
}
"
if
[
"
$head
"
=
"
$b
"
]
;
then
detached
=
yes
b
=
"
$(
case
"
${
GIT_PS1_DESCRIBE_STYLE
-
}
"
in
(
contains
)
git describe
--contains
HEAD
;;
(
branch
)
git describe
--contains
--all
HEAD
;;
(
describe
)
git describe HEAD
;;
(
*
|
default
)
git describe
--tags
--exact-match
HEAD
;;
esac
2>/dev/null
)
"
||
b
=
"
$short_sha
..."
b
=
"(
$b
)"
fi
fi
fi
if
[
-n
"
$step
"
]
&&
[
-n
"
$total
"
]
;
then
r
=
"
$r
$step
/
$total
"
fi
local
w
=
""
local
i
=
""
local
s
=
""
local
u
=
""
local
c
=
""
local
p
=
""
if
[
"true"
=
"
$inside_gitdir
"
]
;
then
if
[
"true"
=
"
$bare_repo
"
]
;
then
c
=
"BARE:"
else
b
=
"GIT_DIR!"
fi
elif
[
"true"
=
"
$inside_worktree
"
]
;
then
if
[
-n
"
${
GIT_PS1_SHOWDIRTYSTATE
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showDirtyState
)
"
!=
"false"
]
then
git diff
--no-ext-diff
--quiet
--exit-code
||
w
=
"*"
if
[
-n
"
$short_sha
"
]
;
then
git diff-index
--cached
--quiet
HEAD
--
||
i
=
"+"
else
i
=
"#"
fi
fi
if
[
-n
"
${
GIT_PS1_SHOWSTASHSTATE
-
}
"
]
&&
[
-r
"
$g
/refs/stash"
]
;
then
s
=
"$"
fi
if
[
-n
"
${
GIT_PS1_SHOWUNTRACKEDFILES
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showUntrackedFiles
)
"
!=
"false"
]
&&
git ls-files
--others
--exclude-standard
--error-unmatch
--
'*'
>
/dev/null 2>/dev/null
then
u
=
"%
${
ZSH_VERSION
+%
}
"
fi
if
[
-n
"
${
GIT_PS1_SHOWUPSTREAM
-
}
"
]
;
then
__git_ps1_show_upstream
fi
fi
local
z
=
"
${
GIT_PS1_STATESEPARATOR
-
" "
}
"
# NO color option unless in PROMPT_COMMAND mode
if
[
$pcmode
=
yes
]
&&
[
-n
"
${
GIT_PS1_SHOWCOLORHINTS
-
}
"
]
;
then
__git_ps1_colorize_gitstring
fi
local
f
=
"
$w$i$s$u
"
local
gitstring
=
"
$c
${
b
##refs/heads/
}${
f
:+
$z$f
}
$r$p
"
if
[
$pcmode
=
yes
]
;
then
if
[[
-n
${
ZSH_VERSION
-
}
]]
;
then
gitstring
=
$(
printf
--
"
$printf_format
"
"
$gitstring
"
)
else
printf
-v
gitstring
--
"
$printf_format
"
"
$gitstring
"
fi
PS1
=
"
$ps1pc_start$gitstring$ps1pc_end
"
else
printf
--
"
$printf_format
"
"
$gitstring
"
fi
}
python/paddle/v2/__init__.py
浏览文件 @
f5c70bf6
...
@@ -24,13 +24,14 @@ from . import dataset
...
@@ -24,13 +24,14 @@ from . import dataset
from
.
import
reader
from
.
import
reader
import
attr
import
attr
import
pooling
import
pooling
import
inferencer
import
networks
import
networks
import
py_paddle.swig_paddle
as
api
import
py_paddle.swig_paddle
as
api
__all__
=
[
__all__
=
[
'optimizer'
,
'layer'
,
'activation'
,
'parameters'
,
'init'
,
'trainer'
,
'optimizer'
,
'layer'
,
'activation'
,
'parameters'
,
'init'
,
'trainer'
,
'event'
,
'data_type'
,
'attr'
,
'pooling'
,
'data_feeder'
,
'dataset'
,
'reader'
,
'event'
,
'data_type'
,
'attr'
,
'pooling'
,
'data_feeder'
,
'dataset'
,
'reader'
,
'topology'
,
'networks'
'topology'
,
'networks'
,
'inferencer'
,
'infer'
]
]
...
@@ -40,3 +41,6 @@ def init(**kwargs):
...
@@ -40,3 +41,6 @@ def init(**kwargs):
args
.
append
(
'--%s=%s'
%
(
key
,
str
(
kwargs
[
key
])))
args
.
append
(
'--%s=%s'
%
(
key
,
str
(
kwargs
[
key
])))
api
.
initPaddle
(
*
args
)
api
.
initPaddle
(
*
args
)
infer
=
inferencer
.
infer
python/paddle/v2/dataset/mnist.py
浏览文件 @
f5c70bf6
...
@@ -35,24 +35,25 @@ def reader_creator(image_filename, label_filename, buffer_size):
...
@@ -35,24 +35,25 @@ def reader_creator(image_filename, label_filename, buffer_size):
l
=
subprocess
.
Popen
([
zcat_cmd
,
label_filename
],
stdout
=
subprocess
.
PIPE
)
l
=
subprocess
.
Popen
([
zcat_cmd
,
label_filename
],
stdout
=
subprocess
.
PIPE
)
l
.
stdout
.
read
(
8
)
# skip some magic bytes
l
.
stdout
.
read
(
8
)
# skip some magic bytes
while
True
:
try
:
# reader could be break.
labels
=
numpy
.
fromfile
(
while
True
:
l
.
stdout
,
'ubyte'
,
count
=
buffer_size
).
astype
(
"int"
)
labels
=
numpy
.
fromfile
(
l
.
stdout
,
'ubyte'
,
count
=
buffer_size
).
astype
(
"int"
)
if
labels
.
size
!=
buffer_size
:
if
labels
.
size
!=
buffer_size
:
break
# numpy.fromfile returns empty slice after EOF.
break
# numpy.fromfile returns empty slice after EOF.
images
=
numpy
.
fromfile
(
images
=
numpy
.
fromfile
(
m
.
stdout
,
'ubyte'
,
count
=
buffer_size
*
28
*
28
).
reshape
(
m
.
stdout
,
'ubyte'
,
count
=
buffer_size
*
28
*
28
).
reshape
(
(
buffer_size
,
28
*
28
)).
astype
(
'float32'
)
(
buffer_size
,
28
*
28
)).
astype
(
'float32'
)
images
=
images
/
255.0
*
2.0
-
1.0
images
=
images
/
255.0
*
2.0
-
1.0
for
i
in
xrange
(
buffer_size
):
for
i
in
xrange
(
buffer_size
):
yield
images
[
i
,
:],
int
(
labels
[
i
])
yield
images
[
i
,
:],
int
(
labels
[
i
])
finally
:
m
.
terminate
()
m
.
terminate
()
l
.
terminate
()
l
.
terminate
()
return
reader
return
reader
...
...
python/paddle/v2/inferencer.py
0 → 100644
浏览文件 @
f5c70bf6
import
py_paddle.swig_paddle
as
api
import
topology
from
data_feeder
import
DataFeeder
import
itertools
import
numpy
__all__
=
[
'Inference'
,
'infer'
]
class
Inference
(
object
):
def
__init__
(
self
,
output
,
parameters
):
topo
=
topology
.
Topology
(
output
)
gm
=
api
.
GradientMachine
.
createFromConfigProto
(
topo
.
proto
(),
api
.
CREATE_MODE_TESTING
,
[
api
.
PARAMETER_VALUE
])
for
param
in
gm
.
getParameters
():
val
=
param
.
getBuf
(
api
.
PARAMETER_VALUE
)
name
=
param
.
getName
()
assert
isinstance
(
val
,
api
.
Vector
)
val
.
copyFromNumpyArray
(
parameters
.
get
(
name
).
flatten
())
self
.
__gradient_machine__
=
gm
self
.
__data_types__
=
topo
.
data_type
()
def
iter_infer
(
self
,
reader
,
reader_dict
=
None
):
if
reader_dict
is
None
:
reader_dict
=
self
.
default_reader_dict
()
feeder
=
DataFeeder
(
self
.
__data_types__
,
reader_dict
)
self
.
__gradient_machine__
.
start
()
for
data_batch
in
reader
():
yield
self
.
__gradient_machine__
.
forwardTest
(
feeder
(
data_batch
))
self
.
__gradient_machine__
.
finish
()
def
iter_infer_field
(
self
,
field
,
**
kwargs
):
for
result
in
self
.
iter_infer
(
**
kwargs
):
yield
[
each_result
[
field
]
for
each_result
in
result
]
def
infer
(
self
,
field
=
'value'
,
**
kwargs
):
retv
=
None
for
result
in
self
.
iter_infer_field
(
field
=
field
,
**
kwargs
):
if
retv
is
None
:
retv
=
[[]]
*
len
(
result
)
for
i
,
item
in
enumerate
(
result
):
retv
[
i
].
append
(
item
)
retv
=
[
numpy
.
concatenate
(
out
)
for
out
in
retv
]
if
len
(
retv
)
==
1
:
return
retv
[
0
]
else
:
return
retv
def
default_reader_dict
(
self
):
reader_dict
=
dict
()
for
i
,
tp
in
enumerate
(
self
.
__data_types__
):
reader_dict
[
tp
[
0
]]
=
i
return
reader_dict
def
infer
(
output
,
parameters
,
reader
,
reader_dict
=
None
,
field
=
'value'
):
inferer
=
Inference
(
output
=
output
,
parameters
=
parameters
)
return
inferer
.
infer
(
field
=
field
,
reader
=
reader
,
reader_dict
=
reader_dict
)
python/paddle/v2/reader/decorator.py
浏览文件 @
f5c70bf6
...
@@ -14,13 +14,13 @@
...
@@ -14,13 +14,13 @@
__all__
=
[
__all__
=
[
'map_readers'
,
'buffered'
,
'compose'
,
'chain'
,
'shuffle'
,
'map_readers'
,
'buffered'
,
'compose'
,
'chain'
,
'shuffle'
,
'ComposeNotAligned'
,
'batched'
'ComposeNotAligned'
,
'batched'
,
'firstn'
]
]
from
Queue
import
Queue
from
threading
import
Thread
import
itertools
import
itertools
import
random
import
random
from
Queue
import
Queue
from
threading
import
Thread
def
map_readers
(
func
,
*
readers
):
def
map_readers
(
func
,
*
readers
):
...
@@ -213,3 +213,20 @@ def batched(reader, batch_size):
...
@@ -213,3 +213,20 @@ def batched(reader, batch_size):
yield
batch
yield
batch
return
batched_reader
return
batched_reader
def
firstn
(
reader
,
n
):
"""
Limit the max number of samples that reader could return.
"""
# TODO(yuyang18): Check if just drop the reader, could clean the opened
# resource or not?
def
firstn_reader
():
for
i
,
item
in
enumerate
(
reader
()):
if
i
==
n
:
break
yield
item
return
firstn_reader
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录