提交 16683490 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Merge pull request #1611 from nouiz/release

Release preparation
......@@ -8,7 +8,9 @@
# # This file is up-to-date if the command git log --format="%aN <%aE>" | sort -u
# # gives no duplicates.
Jan Schlüter <github@jan-schlueter.de> f0k <github@jan-schlueter.de>
Rami Al-Rfou' <rmyeid@gmail.com> Rami Al-Rfou <rmyeid@gmail.com>
Arnaud Bergeron <abergeron@gmail.com> <abergeron@gmail.com>
<abergeron@gmail.com> <anakha@kami.(none)>
David Warde-Farley <wardefar@iro.umontreal.ca> David Warde-Farley <dwf@cs.toronto.edu>
David Warde-Farley <wardefar@iro.umontreal.ca> David Warde Farley <dwf@cs.toronto.edu>
......@@ -25,6 +27,11 @@ Francois Savard <devnull@localhost> fsavard <devnull@localhost>
# 2 onze <onzeonline@gmail.com>
# 25 projects@lgcm <projects@lgcm>
# 1 tutorial/debug_faq.txt <devnull@localhost>
Bogdan Budescu <bbudescu@gmail.com> bbudescu <bbudescu@gmail.com>
Sebastian Berg <sebastian@sipsolutions.net> seberg <sebastian@sipsolutions.net>
Huy Nguyen <huy@huyng.com> huyng <huy@huyng.com>
Wei Li <kuantkid@gmail.com> kuantkid <kuantkid@gmail.com>
Ethan Buchman <ebuchman@uoguelph.ca> ebuchman <ebuchman@uoguelph.ca>
Frederic Bastien <nouiz@nouiz.org> Frederic Bastien <bastienf@briaree1.rqchp.qc.ca>
Frederic Bastien <nouiz@nouiz.org> Frederic Bastien <bastienf@iro.umontreal.ca>
Frederic Bastien <nouiz@nouiz.org> Frédéric Bastien <nouiz@nouiz.org>
......@@ -55,6 +62,7 @@ James Bergstra <james.bergstra@gmail.com> james@mackie <james@mackie>
James Bergstra <james.bergstra@gmail.com> james@x40.unstable <james@x40.unstable>
James Bergstra <james.bergstra@gmail.com> test_rng_mrg.py <devnull@localhost>
John Salvatier <jsalvatier@gmail.com> jsalvatier <jsalvatier@gmail.com>
John Salvatier <jsalvatier@gmail.com> john salvatier <jsalvatier@gmail.com>
Joseph Turian <turian@iro.umontreal.ca> Joseph Turian <turian@gmail.com>
Joseph Turian <turian@iro.umontreal.ca> turian@grenat.iro.umontreal.ca <turian@grenat.iro.umontreal.ca>
Joseph Turian <turian@iro.umontreal.ca> turian@lgcm <turian@lgcm>
......@@ -83,3 +91,4 @@ Sander Dieleman <sanderdieleman@gmail.com> benanne <sanderdieleman@gmail.com>
Xavier Glorot <glorotxa@iro.umontreal.ca> glorotxa <glorotxa@iro.umontreal.ca>
Xavier Glorot <glorotxa@iro.umontreal.ca> glorotxa@timide.iro.umontreal.ca <glorotxa@timide.iro.umontreal.ca>
Yoshua Bengio <bengioy@iro.umontreal.ca> bengioy@bengio-mac.local <bengioy@bengio-mac.local>
Sina Honari <honaris@iro.umontreal.ca> SinaHonari <sina2222@gmail.com>
差异被折叠。
......@@ -1001,6 +1001,10 @@ instructions in :ref:`windows_bleeding_edge`.
Windows installer for AnacondaCE
################################
.. note::
This don't work with current Anaconda. Help needed to repair this.
If you installed AnacondaCE, the simplest way to install and configure
Theano is to download and execute this `Windows installer
for Theano on AnacondaCE for Windows
......
......@@ -201,7 +201,10 @@ def shared(value, name=None, strict=False, allow_downcast=None, **kwargs):
' using \'theano.shared(..., borrow=True)\'',)
raise
raise TypeError('No suitable SharedVariable constructor could be found',
raise TypeError('No suitable SharedVariable constructor could be found.'
' Are you sure all kwargs are supported?'
' We do not support the parameter dtype or type.'
' value="%s". parameters="%s"' %
(value, kwargs))
shared.constructors = []
......
......@@ -17,7 +17,7 @@ class T_OpFromGraph(unittest.TestCase):
x, y, z = T.matrices('xyz')
e = x + y * z
op = OpFromGraph([x, y, z], [e], mode='FAST_RUN')
f = op(x, y, z) - op(y, z, x) #(1+3*5=array of 16) - (3+1*5=array of 8)
f = op(x, y, z) - op(y, z, x) # (1+3*5=array of 16) - (3+1*5=array of 8)
fn = function([x, y, z], f)
xv = numpy.ones((2, 2), dtype=config.floatX)
yv = numpy.ones((2, 2), dtype=config.floatX)*3
......@@ -47,7 +47,7 @@ class T_OpFromGraph(unittest.TestCase):
def test_grad(self):
x, y, z = T.matrices('xyz')
e = x + y * z
op = OpFromGraph([x, y, z], [e], mode='FAST_RUN', grad_depth = 2)
op = OpFromGraph([x, y, z], [e], mode='FAST_RUN', grad_depth=2)
f = op(x, y, z)
f = f - T.grad(T.sum(f), y)
fn = function([x, y, z], f)
......
......@@ -128,10 +128,15 @@ import logging
import os
import sys
import time
import warnings
import numpy
import numpy.distutils
import numpy.distutils.system_info
try:
import numpy.distutils.__config__
except ImportError:
pass
from theano.configparser import config, AddConfigVar, StrParam
from theano.gof import (utils, Op, view_roots, DestroyHandler,
......@@ -156,8 +161,26 @@ _logger = logging.getLogger('theano.tensor.blas')
# Otherwise, we give an optimization warning for no reason in some cases.
def default_blas_ldflags():
try:
if hasattr(numpy.distutils, '__config__'):
#If the old private interface is available use it as it
#don't print information to the user.
blas_info = numpy.distutils.__config__.blas_opt_info
else:
#We need to catch warnings as in some cases NumPy print
#stuff that we don't want the user to see like this:
"""
SOMEPATH/Canopy_64bit/User/lib/python2.7/site-packages/numpy/distutils/system_info.py:564: UserWarning: Specified path /home/vagrant/src/master-env/lib is invalid.
warnings.warn('Specified path %s is invalid.' % d)
"""
#I'm not able to remove all printed stuff
with_context = warnings.catch_warnings(record=True)
with_context.__enter__()
try:
blas_info = numpy.distutils.system_info.get_info("blas_opt")
finally:
with_context.__exit__(None, None, None)
# If we are in a EPD installation, mkl is available
blas_info = numpy.distutils.system_info.get_info("blas_opt")
if "EPD" in sys.version:
use_unix_epd = True
if sys.platform == 'win32':
......
......@@ -1075,10 +1075,12 @@ class ShapeFeature(object):
# an element of o_shapes is either None or a tuple
# elements of the tuple can be either strings, or ints
if len(o_shapes) != len(node.outputs):
raise Exception('len(o_shapes) = '
+ str(len(o_shapes))
+ ' != len(node.outputs) = '
+ str(len(node.outputs)))
raise Exception(
'The infer_shape method for the Op "%s" returned a list ' +
'with the wrong number of element: len(o_shapes) = %d ' +
' != len(node.outputs) = %d' % (str(node.op),
len(o_shapes),
len(node.outputs)))
# Ensure shapes are in 'int64'. This is to make sure the assert
# found in the `local_useless_subtensor` optimization does not fail.
......
......@@ -188,7 +188,11 @@ def safe_make_node(op, *inputs):
def makeTester(name, op, expected, checks=None, good=None, bad_build=None,
bad_runtime=None, grad=None, mode=None, grad_rtol=None,
eps=1e-10, skip=False, test_memmap=True):
eps=1e-10, skip=False, test_memmap=True, check_name=True):
"""
:param check_name:
Use only for tester that aren't in Theano.
"""
if checks is None:
checks = {}
if good is None:
......@@ -206,12 +210,14 @@ def makeTester(name, op, expected, checks=None, good=None, bad_build=None,
_bad_build, _bad_runtime, _grad = bad_build, bad_runtime, grad
_mode, _grad_rtol, _eps, skip_ = mode, grad_rtol, eps, skip
_test_memmap = test_memmap
_check_name = check_name
class Checker(unittest.TestCase):
op = staticmethod(_op)
expected = staticmethod(_expected)
checks = _checks
check_name = _check_name
good = _good
bad_build = _bad_build
bad_runtime = _bad_runtime
......@@ -223,7 +229,8 @@ def makeTester(name, op, expected, checks=None, good=None, bad_build=None,
def setUp(self):
# Verify that the test's name is correctly set.
# Some tests reuse it outside this module.
eval(self.__class__.__module__ + '.' + self.__class__.__name__)
if self.check_name:
eval(self.__class__.__module__ + '.' + self.__class__.__name__)
# We keep a list of temporary files created in add_memmap_values,
# to remove them at the end of the test.
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论