- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 tensorflow 的新手。我试图理解 word2vec_basic脚本。
一开始它定义了输入和输出。
train_inputs = tf.placeholder(tf.int32, shape=[batch_size])
train_labels = tf.placeholder(tf.int32, shape=[batch_size, 1])
如果我理解正确的话,train_inputs 的形状 - [batch_size]
是一个整数数组,数组的长度是 batch_size
。那么train_labels
的形状为[batch_size, 1]
,即单行矩阵。正确的?如果是,我不明白为什么会这样,以及这些占位符中应该存储什么。按照理论,label
是一个int,input
是一个上下文滑动窗口的数组,那么为什么batch_size
会出现在那里?
我似乎错过了理论中的一些基本内容。我希望得到解释。
最佳答案
我最近碰巧在调试word2vec_basic.py,对于一个简单的数据集示例“狗看到一只猫,狗追赶猫,猫爬了一棵树”,字典
是{ 'the': 0, 'cat': 1, 'dog': 2, 'a': 3, 'saw': 4, 'chased': 5, 'climbed': 6, 'tree': 7}
, reverse_dictionary
为 {0: 'the', 1: 'cat', 2: 'dog', 3: 'a', 4: 'saw', 5: 'chased ', 6: '爬过', 7: '树'}
.
当batch_size=8、skip_window=1、embedding_size=1 和num_skips=2 时,调用generate_batch
返回:
批处理:[2 2 4 4 3 3 1 1]
标签:[[0] [4] [2] [3] [4] [1] [0] [3]]
换句话来说,它们是:
批处理:[狗,狗,锯,锯,a,a,猫,猫]
标签:[[the]、[saw]、[dog]、[a]、[saw]、[cat]、[the]、[a]]
对于数据集中的前三个单词“thedog saw”,由于skip_window为1,预期的(目标,上下文)对应该是(dog,the)和(dog,saw) - 参见“The Skip-克模型”在 https://www.tensorflow.org/tutorials/word2vec如果需要,了解更多详细信息。
至于为什么[batch_size, 1]
中使用1,nce_loss
文档位于https://www.tensorflow.org/api_docs/python/tf/nn/nce_loss说“标签:int64 类型和形状 [batch_size, num_true] 的张量。目标类。”和“num_true:一个整数。每个训练示例的目标类数量。” (num_true的默认值为1)
并且代码中的nce_loss
定义为:
loss = tf.reduce_mean(
tf.nn.nce_loss(weights=nce_weights,
biases=nce_biases,
labels=train_labels,
inputs=embed,
num_sampled=num_sampled,
num_classes=vocabulary_size))
现在应该很容易看出 train_inputs
和 train_labels
的形状有意义。
关于python - tensorflow word2vec 基本输入输出占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42663047/
我收到了一个充满详细信息的文件,必须将其提取并根据其各自的列存储到不同的对象数组中。棘手的是,并非所有线路都具有相同数量的数据。我可以读取文件,可以拆分它以及所有内容。 20005,Arsenal,M
本题与问题相关:如何检测intent(in)的违规子程序里面。但是我在相关问题Enforce intent(in) declared variables in Fortran as constant
我正在尝试用 Java 设计一个海里计算器。 我能够通过控制台创建和运行它,但我在学习如何在 JFrames 中执行它时遇到了麻烦。 我基本上想做的是: 有两个文本字段和一个按钮,一个文本字段英里,一
我有一个 Excel 文件,其中显示了一个表格,用户可以在其中更改字段的值。当此值更改时,另一个字段的值会自动更改,因为它具有以下公式: row 26 =IF(DWTDwt:
我已经成功地从 2 个文件中提取数据并将它们存储在各自类的数组对象中。这是我存储在数组对象中的一些数据: 2005,Arsenal,ManU,Arsenal,WestHam,Y,2,3,40000 2
谁能告诉我这段代码有什么问题?我总是打不开。 #include #include using namespace std; int main(){ fstream fs; fs.o
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf 定义示例类型和变量 ?
我正在编写一个脚本,它将一个 UTF-16 编码的文本文件作为输入并输出一个 UTF-16 编码的文本文件。 use open "encoding(UTF-16)"; open INPUT, " in
我刚刚开始学习 Java,我想克服在尝试为这个“问题”创建 Java 程序时出现的障碍。这是我必须创建一个程序来解决的问题: Tandy 喜欢分发糖果,但只有 n 颗糖果。对于她给第 i 个糖果的人,
代码在一台服务器上运行,但在另一台服务器上运行不正常。尝试使用 jquery uploadify 上传大小约为 1 MB 的文件时出现此错误。 IO: Error #2038 尝试在 php.ini
认识文件 平时说的文件一般都是指存储在硬盘上的普通文件。 形如:txt文本、jpg图片、mp4视频、rar压缩包等这些文件都可以认为是普通文件。 它们都是在硬盘上存储的。 但是站在计算机专业术语的角度
是否可以同时使用 C++ 应用程序和 Java 应用程序读取和写入同一个文本文件,而不会向其中写入冲突的行/字符?我现在已经用两个 java 应用程序进行了测试,似乎可以从一个进程写入文件,即使另一个
我是一名优秀的程序员,十分优秀!