提交 7faacbef authored 作者: AlexLamb's avatar AlexLamb

Added ability to store results from theano function in a python dictionary

上级 5ff8e002
'''
Supports user generating theano function where the outputs are a dictionary
'''
def createFunctionReturningDictionary(args, fn, keys):
outputLst = fn(*args)
outputDict = {}
for i in range(0, len(keys)):
outputDict[keys[i]] = outputLst[i]
return outputDict
...@@ -17,6 +17,7 @@ import warnings ...@@ -17,6 +17,7 @@ import warnings
from theano import gof from theano import gof
from theano import compat from theano import compat
from theano.compile.dictionaryOutputWrapper import createFunctionReturningDictionary
def function_dump(filename, inputs, outputs=None, mode=None, updates=None, def function_dump(filename, inputs, outputs=None, mode=None, updates=None,
givens=None, givens=None,
...@@ -185,6 +186,15 @@ def function(inputs, outputs=None, mode=None, updates=None, givens=None, ...@@ -185,6 +186,15 @@ def function(inputs, outputs=None, mode=None, updates=None, givens=None,
""" """
if type(outputs) is dict:
outputsDictFormat = True
outputKeys = outputs.keys()
outputs = outputs.values()
else:
outputsDictFormat = False
if name is None: if name is None:
# Determine possible file names # Determine possible file names
source_file = re.sub('\.pyc?', '.py', __file__) source_file = re.sub('\.pyc?', '.py', __file__)
...@@ -267,4 +277,16 @@ def function(inputs, outputs=None, mode=None, updates=None, givens=None, ...@@ -267,4 +277,16 @@ def function(inputs, outputs=None, mode=None, updates=None, givens=None,
# We need to add the flag check_aliased inputs if we have any mutable or # We need to add the flag check_aliased inputs if we have any mutable or
# borrowed used defined inputs # borrowed used defined inputs
fn._check_for_aliased_inputs = check_for_aliased_inputs fn._check_for_aliased_inputs = check_for_aliased_inputs
if outputsDictFormat:
fnDictOutput = (lambda *args: createFunctionReturningDictionary(args, fn = fn, keys = outputKeys))
return fnDictOutput
return fn return fn
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论