Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pytensor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
testgroup
pytensor
Commits
d7caa062
提交
d7caa062
authored
10月 12, 2012
作者:
Olivier Delalleau
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Typo fixes in news
上级
d8ffb498
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
95 行增加
和
95 行删除
+95
-95
NEWS.txt
NEWS.txt
+95
-95
没有找到文件。
NEWS.txt
浏览文件 @
d7caa062
...
@@ -8,21 +8,21 @@ https://github.com/Theano/Theano/wiki/Devnews
...
@@ -8,21 +8,21 @@ https://github.com/Theano/Theano/wiki/Devnews
Release Notes
Release Notes
=============
=============
Theano 0.6rc1 (
1 October
2012)
Theano 0.6rc1 (
October 1st,
2012)
==============================
==============================
===
Highlight:
Highlight
s
:
* Bug fix
, crash fix
, CPU and GPU speed up.
* Bug fix
es, crash fixes
, CPU and GPU speed up.
* theano_var.eval({other_var:val[,...]} to simplify the usage of Theano (Ian G.)
* theano_var.eval({other_var:
val[,...]} to simplify the usage of Theano (Ian G.)
* New default linker `cvm`. This is the execution engine that tell
what op to run in wit
ch order.
* New default linker `cvm`. This is the execution engine that tell
s what op to run in whi
ch order.
It is now implemented in C and enable lazy evaluation of ifelse op.
It is now implemented in C and enable
s
lazy evaluation of ifelse op.
* Faster theano.function compilation. (Pascal L., Ian G.)
* Faster theano.function compilation. (Pascal L., Ian G.)
* Big sparse submodule update and documentation of it. (Nicolas Bouchard)
* Big sparse submodule update and documentation of it. (Nicolas Bouchard)
* Use GPU asynchronous functionality (Frederic B.)
* Use GPU asynchronous functionality (Frederic B.)
* Better Windows support.
* Better Windows support.
Known bug:
Known bug:
* A few crash case that will be fixed by the final release.
* A few crash case
s
that will be fixed by the final release.
Bug fixes:
Bug fixes:
* Outputs of Scan nodes could contain corrupted values: some parts of the
* Outputs of Scan nodes could contain corrupted values: some parts of the
...
@@ -46,34 +46,34 @@ Bug fixes:
...
@@ -46,34 +46,34 @@ Bug fixes:
they were not supposed to share. (David W-F)
they were not supposed to share. (David W-F)
* Correctly record the GPU device number used when we let the driver select it.
* Correctly record the GPU device number used when we let the driver select it.
(Frederic B.)
(Frederic B.)
* CAReduce with NaN in inputs d
on'
t return the good output. (Pascal L.)
* CAReduce with NaN in inputs d
id no
t return the good output. (Pascal L.)
* This is used in tensor.{all,any,max,mean,prod,sum} and in the grad of PermuteRowElements.
* This is used in tensor.{all,any,max,mean,prod,sum} and in the grad of PermuteRowElements.
* The grad of TensorDot, was returning the wrong shape for some combination of axes.
* The grad of TensorDot, was returning the wrong shape for some combination of axes.
We now raise NotImplementedError in those cases. (Frederic B.)
We now raise NotImplementedError in those cases. (Frederic B.)
* conv2d with subsample >2 returned wrong values. (Pascal L.)
* conv2d with subsample >2 returned wrong values. (Pascal L.)
* Fixed when mode==valid, disabled when mode==full
* Fixed when mode==valid, disabled when mode==full
* theano.sparse.CSMGrad op(generated by the grad of CSM) didn't
* theano.sparse.CSMGrad op
(generated by the grad of CSM) didn't
handle unsorted input correctly and gra
pdient that are more sparse
handle unsorted input correctly and gra
dient that is sparser
th
en the input. In that case, bad result was returned. But this can
th
an the input. In that case, a bad result was returned. But this could
happen only when a sparse input of a Theano function was not
happen only when a sparse input of a Theano function was not
sorted. This happen
for example with sparse advant
ed indexing from
sorted. This happen
s for example with sparse advanc
ed indexing from
scipy. The conclusion is most of time Nan in the graph.
scipy. The conclusion is most of time Nan in the graph.
(Yann Dauphin)
(Yann Dauphin)
* theano.sparse._dot(CSC matrix, dense) optimized version UsmmCSCDense didn't handle
d
* theano.sparse._dot(CSC matrix, dense) optimized version UsmmCSCDense didn't handle
correctly not contiguous inputs/outputs. (Pascal L.)
correctly not contiguous inputs/outputs. (Pascal L.)
* Fix a corner case CVM updates case. (Pascal L.)
* Fix a corner case CVM updates case. (Pascal L.)
This happen
is
the update to a shared variable is itself after optimization.
This happen
ed if
the update to a shared variable is itself after optimization.
The CVM was not used by default.
The CVM was not used by default.
* Fix the view_map of sparse.Transpose and sparse.sandbow.sp.RowScale. (Frederic B.)
* Fix the view_map of sparse.Transpose and sparse.sandbow.sp.RowScale. (Frederic B.)
This probably didn't cause problem as there is only the UsmmCscDense op
This probably didn't cause problem as there is only the UsmmCscDense op
(used call to Usmm wi
e
h CSC matrix) that could interfere with them.
(used call to Usmm wi
t
h CSC matrix) that could interfere with them.
Deprecation:
Deprecation:
* Deprecated the Module class (Ian G.)
* Deprecated the Module class (Ian G.)
This was a predecessor of SharedVariable with a less pythonic ph
y
losophy.
This was a predecessor of SharedVariable with a less pythonic ph
i
losophy.
Interface changes:
Interface changes:
* Now the base version requirement are numpy >= 1.5.0 and the optional scipy >= 0.8.
* Now the base version requirement
s
are numpy >= 1.5.0 and the optional scipy >= 0.8.
* In Theano 0.5, we removed the deprecated sharedvar.value property.
* In Theano 0.5, we removed the deprecated sharedvar.value property.
Now we raise an error if you access it. (Frederic B.)
Now we raise an error if you access it. (Frederic B.)
* theano.function does not accept duplicate inputs, so function([x, x], ...)
* theano.function does not accept duplicate inputs, so function([x, x], ...)
...
@@ -83,7 +83,7 @@ Interface changes:
...
@@ -83,7 +83,7 @@ Interface changes:
instance, function([x, y], [y]). You can use the kwarg
instance, function([x, y], [y]). You can use the kwarg
``on_unused_input={'raise', 'warn', 'ignore'}`` to control this.
``on_unused_input={'raise', 'warn', 'ignore'}`` to control this.
(Pascal L.)
(Pascal L.)
* New Theano flag "on_unused_input" that define the default value of the
* New Theano flag "on_unused_input" that define
s
the default value of the
previous point. (Frederic B.)
previous point. (Frederic B.)
* tensor.alloc() now raises an error during graph build time
* tensor.alloc() now raises an error during graph build time
when we try to create less dimensions than the number of dimensions
when we try to create less dimensions than the number of dimensions
...
@@ -96,34 +96,34 @@ Interface changes:
...
@@ -96,34 +96,34 @@ Interface changes:
* Renamed the FunctionGraph.nodes attribute to FunctionNodes.apply_nodes (Ian G.)
* Renamed the FunctionGraph.nodes attribute to FunctionNodes.apply_nodes (Ian G.)
* Warn when we don't handle correctly the parameter in Theano flags `nvcc.flags`
* Warn when we don't handle correctly the parameter in Theano flags `nvcc.flags`
(Frederic B.)
(Frederic B.)
* Do not reorder the user flags passed to the compiler. They get set after other flags.(Frederic B.)
* Do not reorder the user flags passed to the compiler. They get set after other flags.
(Frederic B.)
* Make setuptools optional (Ilan Schnell
+)/Remove Dependency.
* Make setuptools optional (Ilan Schnell
)
* We warn when a user tr
y to use an old GPU what we don't test with
.
* We warn when a user tr
ies to use an old GPU with which TheNo is untested
.
This could cause crash and will also be very slow. (Frederic B.)
This could cause crash and will also be very slow. (Frederic B.)
* Make theano.grad able to differentiate between not implemented, undefined and disconnected grad.
* Make theano.grad able to differentiate between not implemented, undefined and disconnected grad.
Op.grad function should return theano.gradient.{grad_not_implemented,grad_undefined} or
Op.grad function should return theano.gradient.{grad_not_implemented,grad_undefined} or
something of DisconectedType (Ian G.)
something of DisconectedType (Ian G.)
* Make theano.grad expect to always receive a float or undefined
* Make theano.grad expect to always receive a float or undefined
gradient and
inforce that op with integers
output values always
gradient and
enforce that op with integer
output values always
return 0. (Ian G.)
return 0. (Ian G.)
New memory output contract
(was told about in the release note
of Theano 0.5):
New memory output contract
(was mentioned in the release notes
of Theano 0.5):
* Now the output memory received can be preallocated by other stuff.
* Now the output memory received can be preallocated by other stuff.
In the past it was always the previous output an Apply node allo
w
cated.
In the past it was always the previous output an Apply node allocated.
So this mean
that the shape and strides can be different the from previous call
So this mean
s that the shape and strides can be different from previous calls
and there can be link
to this memory at other place
.
and there can be link
s to this memory at other places
.
This mean it could receive preallocated output that is not c_contiguous.
This mean
s
it could receive preallocated output that is not c_contiguous.
But we don't do that now. (Pascal L.)
But we don't do that now. (Pascal L.)
* New Theano flags to test this DebugMode.check_preallocated_output (Pascal L.)
* New Theano flags to test this DebugMode.check_preallocated_output (Pascal L.)
* Updated
the
a few ops to respect this contract (Pascal L.)
* Updated a few ops to respect this contract (Pascal L.)
New Features:
New Features:
* GPU scan now work
(don'
t crash) when there is a mixture of float32 and other dtypes.
* GPU scan now work
s (does no
t crash) when there is a mixture of float32 and other dtypes.
* theano_var.eval({other_var:val[,...]} to simplify the usage of Theano (Ian G.)
* theano_var.eval({other_var:val[,...]} to simplify the usage of Theano (Ian G.)
* debugprint new param ids=["CHAR", "id", "int", ""]
* debugprint new param ids=["CHAR", "id", "int", ""]
This makes the identifier printed to be
the python id, a unique char
, a
This makes the identifier printed to be
a unique char, the Python id
, a
unique int, or not have it printed. We changed the default to be "CHAR"
unique int, or not have it printed. We changed the default to be "CHAR"
as this is more readable. (Frederic B.)
as this is more readable. (Frederic B.)
* debugprint new param stop_on_name=[False, True]. If True, we don't print
* debugprint new param stop_on_name=[False, True]. If True, we don't print
...
@@ -149,87 +149,87 @@ New Features:
...
@@ -149,87 +149,87 @@ New Features:
* C code reuses preallocated outputs (only done by Scan) (Pascal L.)
* C code reuses preallocated outputs (only done by Scan) (Pascal L.)
* Garbage collection of intermediate results during Theano function calls
* Garbage collection of intermediate results during Theano function calls
for Ops with C code (Pascal L.)
for Ops with C code (Pascal L.)
* Theano flag
s compiledir_format now support
the parameter "numpy_version" and "g++". (Frederic B.)
* Theano flag
compiledir_format now supports
the parameter "numpy_version" and "g++". (Frederic B.)
* Theano GPU variables, shared variable
and constant
now support <, <=,
* Theano GPU variables, shared variable
s and constants
now support <, <=,
> and >=
as as
those not on the GPU.
> and >=
similar to
those not on the GPU.
* AdvancedIncSubtensor now support the set_instead_of_inc parameter. (Eric L.)
* AdvancedIncSubtensor now support
s
the set_instead_of_inc parameter. (Eric L.)
* Added Advanced Indexing support to inc_subtensor and set_subtensor. (Eric L.)
* Added Advanced Indexing support to inc_subtensor and set_subtensor. (Eric L.)
* theano.tensor.{any,all,std,var,mean,prod,sum,argmin,argmax,min,max,max_and_argman}
* theano.tensor.{any,all,std,var,mean,prod,sum,argmin,argmax,min,max,max_and_argman}
have a new parameter keepdims (Eric L.)
have a new parameter keepdims (Eric L.)
This allow
to broadcast it correctly again
the input data to normalize it.
This allow
s to broadcast it correctly against
the input data to normalize it.
* The Updates object
now check that the key
are SharedVariable when we pass them
* The Updates object
s now check that the keys
are SharedVariable when we pass them
in the __init__ function. (Pascal L.)
in the __init__ function. (Pascal L.)
* Set a Theano Variable name on transposed op when the input ha
ve
one (Frederic B).
* Set a Theano Variable name on transposed op when the input ha
s
one (Frederic B).
* The cvm linker now support garbage collection (enabled by default). (James B. Arnaud B., Pascal L.)
* The cvm linker now support
s
garbage collection (enabled by default). (James B. Arnaud B., Pascal L.)
* The cvm linker is now the default linker.
* The cvm linker is now the default linker.
This make
the "loop" around the execution of apply node in C. So this lower
the overhead.
This make
s the "loop" around the execution of apply node in C. So this lowers
the overhead.
* theano_variable[numpy.newaxis] is now supported (James B.)
* theano_variable[numpy.newaxis] is now supported (James B.)
* Enable ifelse on the GPU. (Frederic B.)
* Enable ifelse on the GPU. (Frederic B.)
* Correctly support numpy.memmap everywhere (Pascal L.)
* Correctly support numpy.memmap everywhere (Pascal L.)
We add partial support for them before. Just use the normal tensor operation
We add partial support for them before. Just use the normal tensor operation
on them and it should work.
on them and it should work.
But
take care to don't
exhaust your computer memory! (we always generate normal ndarray)
But
be careful not to
exhaust your computer memory! (we always generate normal ndarray)
* Add an optimization that stabilize log(softmax(x)). (Ian G.)
* Add an optimization that stabilize
s
log(softmax(x)). (Ian G.)
* Re-enable the Images2Neibs grad. It was not broken, the problem was how we tested it. (Frederic B.)
* Re-enable the Images2Neibs grad. It was not broken, the problem was how we tested it. (Frederic B.)
* If `theano_fn.trust_input` is set to False, do not check if the input are good
* If `theano_fn.trust_input` is set to False, do not check if the input
s
are good
when calling the theano function. (Frederic B.)
when calling the theano function. (Frederic B.)
* Add theano.tensor.blas,gem{m,v} as shortcut.
* Add theano.tensor.blas,gem{m,v} as shortcut.
* theano.grad(..., add_names=True). False for the old
* theano.grad(..., add_names=True). False for the old
behavior. Otherwise it tries to name the grad variables. (Ian G.)
behavior. Otherwise it tries to name the grad variables. (Ian G.)
* theano-nose (Pascal L.)
* theano-nose (Pascal L.)
A wrapper around nosetests that add
needed extension
.
A wrapper around nosetests that add
s needed extensions
.
* --profile-time option,
print time spend in each tests
(Eric L.)
* --profile-time option,
to print time spent in each test
(Eric L.)
* --batch option, allow to run tests in batch to lower memory requirement.
* --batch option,
to
allow to run tests in batch to lower memory requirement.
* m = mean(log(1 - sigm(x)))
* m = mean(log(1 - sigm(x)))
x - scalar * theano.grad(m, x)
x - scalar * theano.grad(m, x)
There is a stabilization optimization for this.
There is a stabilization optimization for this.
Now it is applied more frequently. (Pascal L.)
Now it is applied more frequently. (Pascal L.)
New Op/function:
New Op/function
s
:
* Added element-wise operation theano.tensor.{GammaLn,Psi} (John Salvatier, Nicolas Bouchard)
* Added element-wise operation theano.tensor.{GammaLn,Psi} (John Salvatier, Nicolas Bouchard)
* Added element-wise operation theano.tensor.{arcsin,arctan,arccosh,arcsinh,arctanh,exp2,arctan2} (Nicolas Bouchard)
* Added element-wise operation theano.tensor.{arcsin,arctan,arccosh,arcsinh,arctanh,exp2,arctan2} (Nicolas Bouchard)
* Added element-wise operation theano.tensor.{gamma,conj,complex_from_polar,expm1,deg2rad,rad2deg,trunc,gamma} (Nicolas Bouchard)
* Added element-wise operation theano.tensor.{gamma,conj,complex_from_polar,expm1,deg2rad,rad2deg,trunc,gamma} (Nicolas Bouchard)
* Added theano.tensor.argsort that wraps numpy.argsort (Hani Almousli).
* Added theano.tensor.argsort that wraps numpy.argsort (Hani Almousli).
* Added theano.tensor.diff that wrap numpy.diff (Nicolas B.)
* Added theano.tensor.diff that wrap
s
numpy.diff (Nicolas B.)
* Added theano.tensor.bincount that wrap numpy.bincount (Nicolas B., Pascal L, Frederic B.)
* Added theano.tensor.bincount that wrap
s
numpy.bincount (Nicolas B., Pascal L, Frederic B.)
* Added theano.tensor.squeeze (Nicolas B.)
* Added theano.tensor.squeeze (Nicolas B.)
This remove broadcasted dimensions from the variable.
This remove
s
broadcasted dimensions from the variable.
Theano-
n
esque version of numpy.squeeze.
Theano-esque version of numpy.squeeze.
* Added theano.tensor.repeat that wrap numpy.repeat (Nicolas B. + PL)
* Added theano.tensor.repeat that wrap
s
numpy.repeat (Nicolas B. + PL)
* Added theano.tensor.bartlett that wrap numpy.bartlett (Eric L.)
* Added theano.tensor.bartlett that wrap
s
numpy.bartlett (Eric L.)
* Added theano.tensor.fill_diagonal that wrap numpy.fill_diagonal (Eric L., Frederic B.)
* Added theano.tensor.fill_diagonal that wrap
s
numpy.fill_diagonal (Eric L., Frederic B.)
* Added tensor.square that is an alias for tensor.sqr as NumPy (Ian G.)
* Added tensor.square that is an alias for tensor.sqr as NumPy (Ian G.)
* Added theano.tensor.load(path, dtype, broadcastable, mmap_mode=None) op
* Added theano.tensor.load(path, dtype, broadcastable, mmap_mode=None) op
that allow to load a .npy file in a theano graph (Matthew Rocklin)
that allow
s
to load a .npy file in a theano graph (Matthew Rocklin)
* theano.sandbox.linalg.kron.py:Kron op. (Eric L.)
* theano.sandbox.linalg.kron.py:Kron op. (Eric L.)
Kronecker product
Kronecker product
Speed up:
Speed up:
* CPU convolution are now parallelized (Frederic B.)
* CPU convolution
s
are now parallelized (Frederic B.)
By default use all cores/hyper-threads
By default use all cores/hyper-threads
.
To control it, use the `OMP_NUM_THREADS=N` environment variable where N is the number of
To control it, use the `OMP_NUM_THREADS=N` environment variable where N is the number of
parallel thread to use. By default it is equal to the number of CPU cores/hyper
parallel thread
s
to use. By default it is equal to the number of CPU cores/hyper
threads that you have.
threads that you have.
There is a new Theano flag
s
`openmp` to allow/disallow openmp op.
There is a new Theano flag `openmp` to allow/disallow openmp op.
If you BLAS library is parallelized, this flag won't affect it, but the
If you
r
BLAS library is parallelized, this flag won't affect it, but the
env variable will.
env variable will.
* Remove a corner case
where du
duplicated dot22/gemm in the graph. (Frederic B., Ian G.)
* Remove a corner case
causing
duplicated dot22/gemm in the graph. (Frederic B., Ian G.)
* Enable fusion of elemwise that have the same clients multiple time. (Frederic B.)
* Enable fusion of elemwise that have the same clients multiple time
s
. (Frederic B.)
* New optimization: Remove reduction over broadcastable dimensions (James B., Frederic B.)
* New optimization: Remove reduction over broadcastable dimensions (James B., Frederic B.)
* Faster theano.function compilation. (Pascal L., Ian G.)
* Faster theano.function compilation. (Pascal L., Ian G.)
* Remove GPU transfer around specify_shape op. (Frederic B.)
* Remove GPU transfer around specify_shape op. (Frederic B.)
* Implemented/tested MANY op.infer_shape method (Eric Larsen)
* Implemented/tested MANY op.infer_shape method (Eric Larsen)
This allow Theano to make better shape inferance.
This allow
s
Theano to make better shape inferance.
* Implement Solve.infer_shape (Matthew Rocklin)
* Implement Solve.infer_shape (Matthew Rocklin)
* Scan memory optimization now work more frequently. (Razvan P.)
* Scan memory optimization
s
now work more frequently. (Razvan P.)
There was warning printed by the subtensor optimization in those cases.
There was
a
warning printed by the subtensor optimization in those cases.
*
faster rng_mrg p
ython code. (mostly used for tests) (Frederic B.)
*
Faster rng_mrg P
ython code. (mostly used for tests) (Frederic B.)
Speed up GPU:
Speed up GPU:
* Convolution on the GPU now check the generation of the card to make
* Convolution on the GPU now check
s
the generation of the card to make
it faster in some cases (especially medium/big ouput image) (Frederic B.)
it faster in some cases (especially medium/big ouput image) (Frederic B.)
* We had hardcoded 512 as the maximum number of thread
per block. Newer card
* We had hardcoded 512 as the maximum number of thread
s per block. Newer cards
support up to 1024 threads per block.
support up to 1024 threads per block.
* Faster GpuAdvancedSubtensor1, GpuSubtensor, GpuAlloc (Frederic B.)
* Faster GpuAdvancedSubtensor1, GpuSubtensor, GpuAlloc (Frederic B.)
* We now pass the GPU architecture to nvcc when compiling (Frederic B.)
* We now pass the GPU architecture to nvcc when compiling (Frederic B.)
...
@@ -237,7 +237,7 @@ Speed up GPU:
...
@@ -237,7 +237,7 @@ Speed up GPU:
Set the environment variable `CUDA_LAUNCH_BLOCKING` to `1` to disable this
Set the environment variable `CUDA_LAUNCH_BLOCKING` to `1` to disable this
for profiling or debugging.
for profiling or debugging.
* Faster creation of CudaNdarray objects (Frederic B.)
* Faster creation of CudaNdarray objects (Frederic B.)
* Now some Max reduction are implemented on the GPU. (Ian G.)
* Now some Max reduction
s
are implemented on the GPU. (Ian G.)
Sparse Sandbox graduate (moved from theano.sparse.sandbox.sp):
Sparse Sandbox graduate (moved from theano.sparse.sandbox.sp):
* sparse.remove0 (Frederic B., Nicolas B.)
* sparse.remove0 (Frederic B., Nicolas B.)
...
@@ -254,21 +254,21 @@ Sparse:
...
@@ -254,21 +254,21 @@ Sparse:
* New Ops: sparse.{sqrt,sqr,log1p,floor,ceil,sgn,round_half_to_even} (Nicolas B.)
* New Ops: sparse.{sqrt,sqr,log1p,floor,ceil,sgn,round_half_to_even} (Nicolas B.)
* New Ops: sparse.{arctanh,tanh,arcsinh,sinh,arctan,arcsin,tan,sin} (Nicolas B.)
* New Ops: sparse.{arctanh,tanh,arcsinh,sinh,arctan,arcsin,tan,sin} (Nicolas B.)
* New functions: structured_{add,exp,log,pow,minimum,maximum,sigmoid} (Yann D., Nicolas B.)
* New functions: structured_{add,exp,log,pow,minimum,maximum,sigmoid} (Yann D., Nicolas B.)
* Op
op
timized op: StructuredAddSV, StrucutedAddSVCSR (inserted automatically)
* Optimized op: StructuredAddSV, StrucutedAddSVCSR (inserted automatically)
* New Op: sparse.mul_s_v multiplication of sparse matrix by broadcasted vector (Yann D.)
* New Op: sparse.mul_s_v multiplication of sparse matrix by broadcasted vector (Yann D.)
* New Op: sparse.Cast() (Yann D., Nicolas B.)
* New Op: sparse.Cast() (Yann D., Nicolas B.)
* Add sparse_variable.astype() and theano.sparse.cast() and
* Add sparse_variable.astype() and theano.sparse.cast() and
theano.sparse.{b,w,i,l,f,d,c,z}cast() as the
re
tensor equivalent (Nicolas B.)
theano.sparse.{b,w,i,l,f,d,c,z}cast() as the
ir
tensor equivalent (Nicolas B.)
* Op class: SamplingDot (Yann D., Nicolas B.)
* Op class: SamplingDot (Yann D., Nicolas B.)
* Optimized version: SamplingDotCsr, StructuredDotCSC
* Optimized version: SamplingDotCsr, StructuredDotCSC
* Optimization
to inster the optimizer
version: local_sampling_dot_csr, local_structured_add_s_v
* Optimization
s to insert the optimized
version: local_sampling_dot_csr, local_structured_add_s_v
* New Ops: sparse.{Multinomial,Poisson,Binomial}(Yann D., NB)
* New Ops: sparse.{Multinomial,Poisson,Binomial}
(Yann D., NB)
* Implement the CSMProperties grad method (Yann Dauphin)
* Implement the CSMProperties grad method (Yann Dauphin)
* Move optimizations to theano/sparse/opt.py (Nicolas B.)
* Move optimizations to theano/sparse/opt.py (Nicolas B.)
New flags:
New flags:
* `profile=True` flag now print
a printing of the sum of all printed profile.
(Frederic B.)
* `profile=True` flag now print
s the sum of all printed profiles.
(Frederic B.)
* It work
with the linker vm/cvm
(default).
* It work
s with the linkers vm/cvm
(default).
* Also print compile time, optimizer time and linker time.
* Also print compile time, optimizer time and linker time.
* Also print a summary by op class.
* Also print a summary by op class.
* new flag "profile_optimizer" (Frederic B.)
* new flag "profile_optimizer" (Frederic B.)
...
@@ -282,14 +282,14 @@ New flags:
...
@@ -282,14 +282,14 @@ New flags:
if True, will print compilation warning.
if True, will print compilation warning.
* new flag `allow_gc` (Frederic B.)
* new flag `allow_gc` (Frederic B.)
When False, do not garbage collect intermediate results when they are not needed.
When False, do not garbage collect intermediate results when they are not needed.
This use
more memory, but allocate
memory less frequently so faster.
This use
s more memory, but allocates
memory less frequently so faster.
* new flag `vm.lazy` (Frederic B.)
* new flag `vm.lazy` (Frederic B.)
Useful only for the vm linkers. When lazy is None,
Useful only for the vm linkers. When lazy is None,
auto detect if lazy evaluation is needed and use the apropriate
auto detect if lazy evaluation is needed and use the apropriate
version. If lazy i
t
True/False, force the version used between
version. If lazy i
s
True/False, force the version used between
Loop/LoopGC and Stack.
Loop/LoopGC and Stack.
* new flag `cxx`. This is the
c++ compiler to use. If empty do not compile c
code. (Frederic B.)
* new flag `cxx`. This is the
C++ compiler to use. If empty do not compile C
code. (Frederic B.)
* New flag `print_active_device`
flag that default
to True. (Matthew R.)
* New flag `print_active_device`
that defaults
to True. (Matthew R.)
Documentation:
Documentation:
* Added in the tutorial documentation on how to extend Theano.
* Added in the tutorial documentation on how to extend Theano.
...
@@ -303,11 +303,11 @@ Documentation:
...
@@ -303,11 +303,11 @@ Documentation:
http://www.deeplearning.net/software/theano/tutorial/sparse.html
http://www.deeplearning.net/software/theano/tutorial/sparse.html
* Installation documentation for CentOS6 (Frederic B.)
* Installation documentation for CentOS6 (Frederic B.)
* Installation documentation for Ubuntu (with GPU) (Frederic B., Matthias Zoehrer)
* Installation documentation for Ubuntu (with GPU) (Frederic B., Matthias Zoehrer)
* Doc typ
e fix, Doc update, Better error messag
: Olivier D., David W.F., Frederic B., James B., Matthew Rocklin, Ian G.
* Doc typ
o fixes, Doc updates, Better error messages
: Olivier D., David W.F., Frederic B., James B., Matthew Rocklin, Ian G.
* Python Memory Management (Steven Pigeon, Olivier D.)
* Python Memory Management
tutorial
(Steven Pigeon, Olivier D.)
Proposal:
Proposal:
* Math framework for complex gradien (Pascal L.)
* Math framework for complex gradien
ts
(Pascal L.)
Internal changes:
Internal changes:
...
@@ -324,25 +324,25 @@ Internal changes:
...
@@ -324,25 +324,25 @@ Internal changes:
* tensor.utils.shape_of_variables (Matthew R.)
* tensor.utils.shape_of_variables (Matthew R.)
* Add the numpy abi version and g++/nvcc version in the key of compiled code. (Frederic B.)
* Add the numpy abi version and g++/nvcc version in the key of compiled code. (Frederic B.)
* env.replace_all_validate_remove (Frederic B.)
* env.replace_all_validate_remove (Frederic B.)
This allow global optimizer to ensure it removed some nodes from the graph.
This allow
s
global optimizer to ensure it removed some nodes from the graph.
This is a generic way to catch error that would otherwise duplicate
This is a generic way to catch error
s
that would otherwise duplicate
computation.
computation.
* It was used for GEMM and Scan optimization (Frederic B., Razvan P.)
* It was used for GEMM and Scan optimization (Frederic B., Razvan P.)
* Fix how exception are raised in GPU code (James B.)
* Fix how exception are raised in GPU code (James B.)
* Made code respect pep8: OD, Fred, Pascal L., Nicolas Bouchard, Eric Larsen and others.
* Made code respect pep8: OD, Fred, Pascal L., Nicolas Bouchard, Eric Larsen and others.
* TensorType and CudaNdarrayType now have a value_zeros method that call CudaNdarray.zeros or
* TensorType and CudaNdarrayType now have a value_zeros method that call CudaNdarray.zeros or
numpy.zeros with the right dtype. (Pascal L., Olivier D.)
numpy.zeros with the right dtype. (Pascal L., Olivier D.)
This allow
to have the same code work with both type
.
This allow
s to have the same code work with both types
.
* Renamed FunctionGraph.extend function to FunctionGraph.attach_feature. (Ian G.)
* Renamed FunctionGraph.extend function to FunctionGraph.attach_feature. (Ian G.)
* New exception MissingGXX when we try to compile but there is no cxx compiler. (Frederic B.)
* New exception MissingGXX when we try to compile but there is no cxx compiler. (Frederic B.)
* New fct theano.gof.utils.give_variables_names(...) that give
unique name to variable
. (Matthew R.)
* New fct theano.gof.utils.give_variables_names(...) that give
s unique names to variables
. (Matthew R.)
* Use most of the time the new NumPy C-API for later NumPy release. (Frederic B.)
* Use most of the time the new NumPy C-API for later NumPy release. (Frederic B.)
* New theano.gof.sched.sort_apply_nodes() that will allow other execution ordering. (Matthew R.)
* New theano.gof.sched.sort_apply_nodes() that will allow other execution ordering. (Matthew R.)
* New attribute sort_schedule_fn, a way to specify a scheduler to use. (Matthew R.)
* New attribute sort_schedule_fn, a way to specify a scheduler to use. (Matthew R.)
Crash Fix:
Crash Fix:
* Fix import conflict name (usaar33, Frederic B.)
* Fix import conflict name (usaar33, Frederic B.)
* This make Theano work with PiCloud.
* This make
s
Theano work with PiCloud.
* Do not try to use the BLAS library when blas.ldflags is manually set to an
* Do not try to use the BLAS library when blas.ldflags is manually set to an
empty string (Frederic B., Pascal L.)
empty string (Frederic B., Pascal L.)
* When importing theano on a computer without GPU with the Theano
* When importing theano on a computer without GPU with the Theano
...
@@ -369,7 +369,7 @@ Crash Fix:
...
@@ -369,7 +369,7 @@ Crash Fix:
* In advanced indexing, if some inputs are constant, no need to call constant(...)
* In advanced indexing, if some inputs are constant, no need to call constant(...)
on their value any more. (Pascal L., reported by John Salvatier)
on their value any more. (Pascal L., reported by John Salvatier)
* Fix crash on GPU when the GpuSubtensor didn't put the right stride
* Fix crash on GPU when the GpuSubtensor didn't put the right stride
when the result
s tensor had a dimensions
with size of 1. (Pascal L,
when the result
tensor had a dimension
with size of 1. (Pascal L,
reported Graham T.)
reported Graham T.)
* Fix scan crash that made it not run on the GPU in one case. (Guillaume D.)
* Fix scan crash that made it not run on the GPU in one case. (Guillaume D.)
* If you grad again a random state, don't crash (Razvan P.)
* If you grad again a random state, don't crash (Razvan P.)
...
@@ -379,20 +379,20 @@ Crash Fix:
...
@@ -379,20 +379,20 @@ Crash Fix:
(Olivier D.)
(Olivier D.)
* Crash fix on python 2.4 with slicing. (Pascal L.)
* Crash fix on python 2.4 with slicing. (Pascal L.)
* grad of argmin and argmax (Razvan P.)
* grad of argmin and argmax (Razvan P.)
* Don't compute the Rop for shared variable
with updates
(mostly random).
* Don't compute the Rop for shared variable
s with updates
(mostly random).
We don't use them and they caused crash. (Razvan P.)
We don't use them and they caused crash. (Razvan P.)
* MaxArgmax.grad() when one of the gradient it receive is None. (Razvan P, reported by Mark Fenner)
* MaxArgmax.grad() when one of the gradient it receive
s
is None. (Razvan P, reported by Mark Fenner)
* Fix crash of GpuSum when some dimensions shape was 0. (Frederic B.)
* Fix crash of GpuSum when some dimensions shape was 0. (Frederic B.)
Tests:
Tests:
* Use less memory (Olivier D.)
(frix crash on 32-bits
computers)
* Use less memory (Olivier D.)
(fix crash on 32-bit
computers)
* Fix test with Theano flag "blas.ldflags=". (Frederic B., Pascal L.)
* Fix test with Theano flag "blas.ldflags=". (Frederic B., Pascal L.)
* Fix crash with advanced subtensor and numpy constant.
* Fix crash with advanced subtensor and numpy constant.
* Fix random tests crash due to random value. (Pascal L.)
* Fix random tests crash due to random value. (Pascal L.)
* Always introduce Alloc node when calling alloc and let the optimizer remove them if needed.
* Always introduce Alloc node when calling alloc and let the optimizer remove them if needed.
This allow DebugMode to catch some shape error. (Pascal L.)
This allow
s
DebugMode to catch some shape error. (Pascal L.)
* DebugMode now check
the view_map for all type of Theano variable
.
* DebugMode now check
s the view_map for all types of Theano variables
.
It was doing only variable of tensor type. (Frederic B.)
It was doing only variable
s
of tensor type. (Frederic B.)
Others:
Others:
* Remove python warning for some python version. (Gabe Schwartz)
* Remove python warning for some python version. (Gabe Schwartz)
...
@@ -401,7 +401,7 @@ Others:
...
@@ -401,7 +401,7 @@ Others:
* Now we use http://travis-ci.org/ to run all CPU tests (without SciPy)
* Now we use http://travis-ci.org/ to run all CPU tests (without SciPy)
with the default mode on all Pull Requests.
with the default mode on all Pull Requests.
This should make the trunk more stable. (Fredric B.)
This should make the trunk more stable. (Fredric B.)
* Our nightly buildbot now check
on python 2.4
(Frederic B.)
* Our nightly buildbot now check
s on python 2.4
(Frederic B.)
This should make the trunk work on it more frequently.
This should make the trunk work on it more frequently.
Other thanks:
Other thanks:
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论