将“输入”传递给 Theano 中的函数的目的/含义是什么?

2024-03-12

我希望示例会让这一点更清楚,(这是一个 Logistic 回归对象,Theano 张量库作为 T 导入)

    def __init__(self, input, n_in, n_out):
        #Other code...
        self.p_y_given_x = T.nnet.softmax(T.dot(input, self.W) + self.b)

这在 main 中被称为...

def main():
    x = T.matrix()
    classifier = LogisticRegression(input=x, n_in=28 * 28, n_out=10)

如果这些片段不足以理解,代码位于此页面的“将其全部放在一起”下 -http://deeplearning.net/tutorial/logreg.html#logreg http://deeplearning.net/tutorial/logreg.html#logreg


所以... Theano 在计算表达式之前先为其构建图表。通过将 theano 变量(例如示例中的“x”)传递给逻辑回归对象的初始化,您将在对象中创建许多表达式(例如 p_y_given_x),这些表达式是依赖于 x 的 theano 表达式。这稍后用于符号梯度计算。

为了更好地感受它,您可以执行以下操作:

import theano.pp #pp is for pretty print
x = T.dmatrix('x') #naming your variables is a good idea, and important i think
lr = LogisticRegression(x,n_in = 28*28, n_out= 10)
print pp(lr.p_y_given_x)

这应该给你一个输出,例如

softmax( W \dot x + b)

当你在做的时候,就去尝试吧

print pp(T.grad(lr._y_given_x,x)) #might need syntax checkng

这就是 theano 内部存储表达式的方式。然后你可以使用这些表达式在theano中创建函数,例如

values = theano.shared( value = mydata, name = 'values')
f = theano.function([],lr.p_y_given_x , 
                    givens ={x:values},on_unused_input='ignore')
print f()

然后调用 f 应该会为您提供 mydata.txt 中定义的值的预测类概率。在 theano 中执行此操作的方法(以及在 DL 教程中完成的方法)是传递一个“虚拟”theano 变量,然后使用“givens”关键字将其设置为包含数据的共享变量。这很重要,因为将变量存储在共享变量中允许 theano 使用 GPU 进行矩阵运算。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将“输入”传递给 Theano 中的函数的目的/含义是什么? 的相关文章

随机推荐

  • 用于列出用户的 S3 存储桶内的特定文件夹的 IAM 策略

    我在桶下面有下面的钥匙客户演示 demo for customers customer1 demo for customers customer2 现在我有 2 个客户客户1 and 客户2 这就是我要的 仅授予他们访问权限客户演示 buc
  • 给定一个数的质因数分解,生成该数的所有因数

    如果您已经对一个数字进行质因数分解 那么获得该数字的所有因数的集合的最简单方法是什么 我知道我可以从 2 循环到 sqrt n 并找到所有可整除的数字 但这似乎效率很低 因为我们已经有了质因数分解 我想它基本上是组合 选择函数的修改版本 但
  • 熊猫 corr() 与 corrwith()

    Pandas 提供两种不同的相关函数的原因是什么 DataFrame corrwith 其他 轴 0 drop False 两个DataFrame对象的行或列之间的相关性成对计算 vs DataFrame corr method pears
  • Jackson 序列化 可选,YAML 为空值

    目前我正在使用YAML工厂 https fasterxml github io jackson dataformats text javadoc yaml 2 11 配置ObjectMapper序列化和反序列化Pojos lt gt YAM
  • 显示片段中的对话框?

    我有一些片段需要显示常规对话框 在这些对话框中 用户可以选择是 否答案 然后片段应该做出相应的行为 现在Fragment类没有onCreateDialog 方法来重写 所以我想我必须在包含的外部实现对话框Activity 没关系 但是接下来
  • 当 url 包含锚点时,获取页面加载时网页滚动条的垂直位置

    我使用 jQuery 的scrollTop 方法来获取页面加载时滚动条的垂直位置 我需要在执行 url 中的锚点后获取此值 例如 url www domainname com foo 我可以使用以下代码 它可以在 Firefox 和 IE
  • iPhone 解锁时 Xcode“设备锁定”

    当我尝试构建并运行时 Xcode 说我的设备已锁定 我看了看我的 iPhone 它根本没有锁定 我该如何解决 我的手机设置为 信任 Mac 但我在 Xcode 6 1 1 中仍然遇到此错误 这对我有用 拔掉设备插头 退出 xcode 打开X
  • 测试示例集属性应等于训练示例集 Rapidminer SVM 的 OR 超集

    I am new to Rapid Miner and using SVM Linear in it My model is as I made Training Example set which consist of 3552 exam
  • 动态 Java 整数/长溢出检查与性能

    这是一个相当理论化的问题 因此虽然该语言是 Java 特有的 但任何通用的解决方案都足够了 假设我想编写一个简单的阶乘函数 long factorial int n handle special cases like negatives e
  • Xamarin 表单更改导航栏的背景颜色

    我正在使用 Xamarin Forms 并尝试更改 iOS 上导航栏的背景颜色 我有一个继承自 NavigationPage 的自定义导航栏类 具有可绑定属性和构造函数 用于设置导航栏的颜色 根据我的理解 导航栏顶部有一个默认背景 黑色 X
  • 从 fresco 获取 bitmapdrawable

    我正在尝试从 SimpleDraweeView 获取位图 我已经使用 uri 图像设置了 SimpleDraweeView final Uri uri new Uri Builder scheme UriUtil LOCAL RESOURC
  • 如何阻止 Docker 注册表?

    我想阻止对默认 docker io 注册表的访问 为了安全 IP 保护 我们需要阻止对公共 Docker 中心的推 拉访问 曾经有过many尝试将此作为配置选项 但所有 PR 都不断被拒绝 红帽已经实现了 block registry 和
  • java 图形的多线程

    我有一个java应用程序 可以传输原始数据并相应地绘制实时图 这是通过调用我编写的使用 Graphics 对象的类中的方法来处理的 我在重写的paintComponent方法中实现了算法 以根据最新数据生成所有绘图 我的类中有其他方法来更新
  • 同时在 dplyr 中对多列进行 Shapiro.test

    我正在尝试对数据集运行正态性检验 shapiro wilk 并且我希望同时获得所有列的统计数据和 p 值 我已阅读 SO 上的所有其他页面 R 按组进行的夏皮罗测试不会产生 p 值和损坏的数据框警告 https stackoverflow
  • 除了第一个之外,所有意图都收到了错误的附加内容

    我有一个小应用程序 可用于设置未来事件的提醒 该应用程序使用 AlarmManager 来设置提醒用户的时间 当闹钟响起时 BroadcastReceiver 会对此进行注册 然后启动一项服务 通过 Toast 和状态栏中的通知来通知用户
  • 控制进程停止后 Android Activity 重新启动

    我的应用程序正在运行 Android Gingerbread 2 3 7 自定义版本的特殊设备上运行 在某些情况下 系统将终止我的应用程序 我认为设备制造商考虑到了这些紧急情况 应立即关闭所有第三方应用程序 以便设备可以执行其主要任务 我可
  • 使用dispatch_sync作为互斥锁

    这是我需要做的 我希望dispatch sync是使用GCD实现这一点的最佳方法 我有一段关键部分代码放置在 Appdelegate 的 applicationDidBecomeActive 回调中 我将该方法包装在dispatch syn
  • 将scala生成的数据写入文本文件

    我希望有人可以提供帮助 我是 scala 新手 并且在将输出写入文本文件时遇到一些问题 我有一个数据表 并且编写了一些代码来一次读取一行 执行我想要它执行的操作 现在我需要它将该行写入文本文件 例如 我有下表的数据类型 名称 日期 goX
  • 为什么 Scala 在第一种情况下警告类型擦除而不是第二种情况?

    我有两个函数 这些函数自原始以来没有被编辑过 下面的一些答案是对返回 序列的原始函数的响应 def foo1 A ls Iterable A Iterator A for List a b lt ls sliding 2 yield a d
  • 将“输入”传递给 Theano 中的函数的目的/含义是什么?

    我希望示例会让这一点更清楚 这是一个 Logistic 回归对象 Theano 张量库作为 T 导入 def init self input n in n out Other code self p y given x T nnet sof