Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pytensor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
testgroup
pytensor
Commits
b970f9b8
提交
b970f9b8
authored
9月 26, 2014
作者:
pl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added explanation about required validation of inputs and outputs
上级
a47b9214
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
18 行增加
和
2 行删除
+18
-2
extending_theano_c.txt
doc/tutorial/extending_theano_c.txt
+18
-2
没有找到文件。
doc/tutorial/extending_theano_c.txt
浏览文件 @
b970f9b8
...
...
@@ -348,12 +348,28 @@ Complete C Op example
In this section, we put together every concept that was covered in this
tutorial to generate an op which multiplies every element in a vector
by a scalar
.
by a scalar
and returns the resulting vector.
N
otice how the reference count on the output variable is
In the C code below n
otice how the reference count on the output variable is
managed. Also take note of how the new variables required for the op's
computation are declared in a new scope to avoid cross-initialization errors.
Also, in the C code, it is very important to properly validate the inputs
and outputs storage. Theano guarantees that the inputs exist and have the
right number of dimensions but it does not guarantee their exact shape. For
instance, if an op computes the sum of two vectors, it needs to validate that
its two inputs have the same shape. In our case, we do not need to validate
the exact shapes of the inputs because we don't have a need that they match
in any way.
For the outputs, things are a little bit more subtle. Theano does not
guarantee that they have been allocated but it does guarantee that, if they
have been allocated, they have the right number of dimension. Again, Theano
offers no guarantee on the exact shapes. This means that, in our example, we
need to validate that the output storage has been allocated and has the same
shape as our vector input. If it is not the case, we allocate a new output
storage with the right shape and number of dimensions.
:note:
Given the simple nature of this op, there was no need to use the
c_support_code() function.
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论