问题标签 [softmax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
image - 在tensorflow中获取多个图像文件作为二维张量
对于在 python 中使用 tensorflow 的 softmax 回归程序,我想将我的 1000 个 jpeg 图像文件作为 2D 张量 x:[图像索引,像素索引]。“图像索引”是图像,像素索引是该图像的特定图像像素。模型方程为:
图像大小 = 图像的高度 * 宽度(所有图像的常量)。
在张量流中以这种形式获取我的图像文件的最佳方法是什么?
python - Tensorflow:将张量转换为 numpy 数组,然后传递到 feed_dict
我正在尝试为 CIFAR 分类建立一个 softmax 回归模型。起初,当我尝试将图像和标签传递到提要字典中时,我收到一个错误,指出提要字典不接受张量。然后我使用 .eval() 将它们转换为 numpy 数组,但程序挂在 .eval() 行并且不再继续。如何将此数据传递到 feed_dict?
CIFARIMAGELOADING.PY
CIFAR.PY
python - Softmax矩阵到0/1(OneHot)编码矩阵?
假设我有以下张量t
作为 softmax 函数的输出:
现在我想将此矩阵t
转换为类似于 OneHot 编码矩阵的矩阵:
我熟悉c = tf.argmax(t)
这会给我每行的索引t
应该是 1。但是从c
to去Y
似乎很困难。
我已经尝试过的是转换t
为tf.SparseTensor
using c
,然后使用tf.sparse_tensor_to_dense()
to get Y
。但是这种转换涉及相当多的步骤,而且对于这项任务来说似乎有些过分——我什至还没有完全完成它,但我相信它可以工作。
有没有更合适/更简单的方法来进行我所缺少的这种转换。
我需要这个的原因是因为我在 Python 中有一个自定义的 OneHot 编码器,我可以在其中提供Y
. tf.one_hot()
不够广泛 - 不允许自定义编码。
相关问题:
r - 使用 Softmax 转换输出激活会产生相似的值
我训练了一个简单的递归网络(62 个输入单元、124 个隐藏/上下文单元、62 个输出单元)来预测句子中的后续单词。我使用了 sigmoid 激活函数。由于各种奇怪的原因,无法在训练期间应用 softmax。我的教授建议,我可以在之后将 softmax 应用于网络输出。该矩阵有 576 行和 62 列。所以我通过以下方式在 R 中实现了 softmax:
softmax_complete() 返回的矩阵的每一行正确地总和为 1。问题是,对于每一行,我的函数产生的值彼此非常相似。由于值几乎“相同”,因此无法验证网络性能。
这是一些小的示例数据。它来自网络输出的第二行。Softmax 尚未应用。
当我将 softmax 应用于该行时,我得到以下结果:
行总和为 1.000703。对于上面示例中未描述的另一行,行总和为 0.9976472。我究竟做错了什么?
也许你们有解决这个问题的想法。提前感谢您的时间和帮助:-)
问候, 马蒂亚斯
编辑:
这就是我通过 RSNNS 创建 Elman Net 的方式:
matlab - matconvnet分类训练最后一层(softmax)?
我想重新训练 vgg-imagenet-f 网络进行分类(而不是直接进行图像比较,这是我用自己的网络所做的)。然而,下载的网络是一个部署网络,不包含损失层。由于我之前没有进行过分类训练,所以我对如何设计最后一层感到有些困惑。我希望它会是这样的:
但我不知道我的@forward 和@backward 函数应该是什么。他们应该是softmax吗?值得注意的是,我有一个带有大约 10k 图像、相应标签和一个 ID 元素的 imdb,其唯一编号为 1 - 10k。感谢您提供任何帮助,或任何指向在 matconvnet/matlab 中构建该层的方式示例的链接!
neural-network - 常规softmax和采样softmax有什么区别?
我正在学习 seq2seq 神经模型,我对常规的 softmax 和采样的 softmax 感到困惑。有人告诉我,采样的 softmax 主要用于大词汇量。那么任何人都可以直观地解释两者之间的区别吗?
python - Tensorflow softmax 函数返回 one-hot 编码数组
我有这段代码计算来自我的 convnet 的输出预测的 softmax 函数。
我的预测数组的形状为 [batch_size, number_of_classes] = [128,6] 该数组的示例行是...
运行 softmax 函数后,我将得到一个热编码数组的结果......
我认为这是因为我正在采用非常大的值的指数。我只是想知道我是否做错了什么,或者我是否应该在应用 softmax 函数之前先缩放我的值。我的损失函数是
我正在使用 Adam Optimizer 将其最小化
我的网络能够很好地学习。
我应用 softmax 函数的原因是为了获得测试数据上每个类的概率值。
编辑
似乎为我的 softmax 函数修复了这些非常大的值,我应该添加归一化和正则化。我已经为我的 convnet 添加了设计代码,任何关于在何处放置正则化和规范化的帮助都会很棒。
python - 张量流损失函数?
张量流中有很多损失函数,如 sigmoid_cross_entropy_logits、softmax_cross_entropy_logits。你能写出这些函数的数学公式吗?什么是logits?是指这个功能吗?它是明智地应用元素吗?
machine-learning - 简单的softmax模型的Tensorflow参数值没有变化
我正在尝试在我的图像数据上使用 tensorflow 构建一个 softmax 模型,灵感来自 MNIST 示例。当我尝试训练模型时,我发现损失没有减少。我还看到第一次迭代后参数(W,b)值没有变化。我是否需要在每次迭代后显式更新我的参数值?
代码:-
成本始终保持相似:
更新:批量大小代码
matlab - (matlab) 带有 relu 和 softmax 的 MLP 不适用于小批量 SGD,并在 MNIST 数据集上产生类似的预测
我在 MNIST 数据集上实现了一个带有 1 个隐藏层的多层感知器。隐藏层的激活函数是leaky(0.01) ReLu,输出层有一个softmax激活函数。学习方法是 mini-batch SGD。网络结构为784*30*10。问题是我发现网络对每个输入样本所做的预测非常相似。这意味着模型总是想认为图像是某个特定的数字。感谢@Lemm Ras 指出先前 data_shuffle 函数中的标签数据不匹配问题,现已修复。但是经过一些批量训练后,我发现预测仍然有些相似:这很令人困惑。
另一个问题是更新值与原始权重相比太小,在 MLP 代码中,我添加了变量 'cc' 和 'dd' 来记录它们的 weight_update 和 weight 之间的比率,
调试时,cc 的大小为 10^-4(0.0001),dd 也是 10^-4。这可能是准确性似乎没有提高很多的原因。
经过几天的调试。我不知道为什么会发生这种情况以及如何解决它,这让我卡了一个星期。有人能帮助我吗?截图是softmax函数后A2的值。
这里是训练 MLP 函数,请忽略当前设置为 0 的 L2 正则化参数 lamda。
这是softmax函数:
labels_matrix 是 A2 的目标输出矩阵,创建为:
和 Relu:
数据洗牌
数据加载: