Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into srl_api_v2
commit
1d54a12ceb
@ -0,0 +1,46 @@
|
|||||||
|
# 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="\[\033[1;33m\]"
|
||||||
|
NO_COLOUR="\[\033[0m\]"
|
||||||
|
GREEN="\[\033[1;32m\]"
|
||||||
|
WHITE="\[\033[1;37m\]"
|
||||||
|
|
||||||
|
source ~/.scripts/git-prompt.sh
|
||||||
|
|
||||||
|
export PS1="\[\033[1;33m\]λ $WHITE\h $GREEN\w$YELLOW\$(__git_ps1 \" \[\033[35m\]{\[\033[36m\]%s\[\033[35m\]}\")$NO_COLOUR "
|
||||||
|
|
||||||
|
# Git
|
||||||
|
|
||||||
|
source ~/.scripts/git-completion.sh
|
@ -0,0 +1,43 @@
|
|||||||
|
[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
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,59 @@
|
|||||||
|
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)
|
Loading…
Reference in new issue