RuntimeError:只能计算浮点类型的平均值。取而代之的是字节。对于平均值 += images_data.mean(2).sum(0)

2023-12-28

我有以下代码:

# Device configuration
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
seed = 42
np.random.seed(seed)
torch.manual_seed(seed)

# split the dataset into validation and test sets
len_valid_set = int(0.1*len(dataset))
len_train_set = len(dataset) - len_valid_set

print("The length of Train set is {}".format(len_train_set))
print("The length of Test set is {}".format(len_valid_set))

train_dataset , valid_dataset,  = torch.utils.data.random_split(dataset , [len_train_set, len_valid_set])

# shuffle and batch the datasets
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=8, shuffle=True, num_workers=4)
test_loader = torch.utils.data.DataLoader(valid_dataset, batch_size=8, shuffle=True, num_workers=4)

print("LOADERS",
    len(dataloader),
    len(train_loader),
    len(test_loader))

火车组的长度是720

测试集的长度为80

装载机 267 90 10

mean = 0.0
std = 0.0
nb_samples = 0.0
for data in train_loader:
    images, landmarks = data["image"], data["landmarks"]
    batch_samples = images.size(0)

    images_data = images.view(batch_samples, images.size(1), -1)
    mean += images_data.mean(2).sum(0)
    std += images_data.std(2).sum(0)
    nb_samples += batch_samples

mean /= nb_samples
std /= nb_samples

我收到此错误:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-23-9e47ddfeff5e> in <module>
      7 
      8     images_data = images.view(batch_samples, images.size(1), -1)
----> 9     mean += images_data.mean(2).sum(0)
     10     std += images_data.std(2).sum(0)
     11     nb_samples += batch_samples

RuntimeError: Can only calculate the mean of floating types. Got Byte instead.

固定代码取自https://stackoverflow.com/a/64349380/2414957 https://stackoverflow.com/a/64349380/2414957它适用于 dataloader 但不适用于 train_loader

另外,这些是结果

print(type(images_data))
print(images_data)

We have:

<class 'torch.Tensor'>
tensor([[[74, 74, 74,  ..., 63, 63, 63],
         [73, 73, 73,  ..., 61, 61, 61],
         [75, 75, 75,  ..., 61, 61, 61],
         ...,
         [74, 74, 74,  ..., 38, 38, 38],
         [75, 75, 75,  ..., 39, 39, 39],
         [72, 72, 72,  ..., 38, 38, 38]],

        [[75, 75, 75,  ..., 65, 65, 65],
         [75, 75, 75,  ..., 62, 62, 62],
         [75, 75, 75,  ..., 63, 63, 63],
         ...,
         [71, 71, 71,  ..., 39, 39, 39],
         [74, 74, 74,  ..., 38, 38, 38],
         [73, 73, 73,  ..., 37, 37, 37]],

        [[72, 72, 72,  ..., 62, 62, 62],
         [74, 74, 74,  ..., 63, 63, 63],
         [75, 75, 75,  ..., 61, 61, 61],
         ...,
         [74, 74, 74,  ..., 38, 38, 38],
         [74, 74, 74,  ..., 39, 39, 39],
         [73, 73, 73,  ..., 37, 37, 37]],

        ...,

        [[75, 75, 75,  ..., 63, 63, 63],
         [73, 73, 73,  ..., 63, 63, 63],
         [74, 74, 74,  ..., 62, 62, 62],
         ...,
         [74, 74, 74,  ..., 38, 38, 38],
         [73, 73, 73,  ..., 39, 39, 39],
         [73, 73, 73,  ..., 37, 37, 37]],

        [[73, 73, 73,  ..., 62, 62, 62],
         [75, 75, 75,  ..., 62, 62, 62],
         [74, 74, 74,  ..., 63, 63, 63],
         ...,
         [73, 73, 73,  ..., 39, 39, 39],
         [74, 74, 74,  ..., 38, 38, 38],
         [74, 74, 74,  ..., 38, 38, 38]],

        [[74, 74, 74,  ..., 62, 62, 62],
         [74, 74, 74,  ..., 63, 63, 63],
         [74, 74, 74,  ..., 62, 62, 62],
         ...,
         [74, 74, 74,  ..., 38, 38, 38],
         [73, 73, 73,  ..., 38, 38, 38],
         [72, 72, 72,  ..., 36, 36, 36]]], dtype=torch.uint8)

当我尝试时

images_data = images_data.float()
mean += images_data.mean(2).sum(0)

我没有像我预期的那样得到 3 个均值和 3 个 std 值的张量,但得到了一个非常大的张量(每个 torch.Size([600]))


正如错误所说,你的images_data是一个 ByteTensor,即具有 dtypeuint8。 Torch 拒绝计算整数的平均值。您可以将数据转换为float with:

(images_data * 1.0).mean(2)

Or

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

RuntimeError:只能计算浮点类型的平均值。取而代之的是字节。对于平均值 += images_data.mean(2).sum(0) 的相关文章

  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 当我有自定义身份验证模型时,如何登录 Django Rest 可浏览 API?

    我有一个自定义用户模型 如下所示account models py from django contrib auth modles import AbstractUser from django db models signals impo
  • 如何避免使用 python 处理空的标准输入?

    The sys stdin readline 返回之前等待 EOF 或新行 所以如果我有控制台输入 readline 等待用户输入 相反 我想打印帮助并在没有需要处理的情况下退出并显示错误 而不是等待用户输入 原因 我正在寻找一个Pytho
  • Python 切片对象和 __getitem__

    python 中是否有内部的东西来处理传递给的参数 getitem 不同 并自动转换start stop step构造成切片 这是我的意思的演示 class ExampleClass object def getitem self args
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • 使用 for 循环创建一系列元组

    我已经搜索过 但找不到答案 尽管我确信它已经存在了 我对 python 很陌生 但我以前用其他语言做过这种事情 我正在以行形式读取数据文件 我想将每行数据存储在它自己的元组中 以便在 for 循环之外访问 tup i inLine wher
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不
  • python从二进制文件中读取16字节长的双精度值

    我找到了蟒蛇struct unpack 读取其他程序生成的二进制数据非常方便 问题 如何阅读16 字节长双精度数出二进制文件 以下 C 代码将 1 01 写入二进制文件三次 分别使用 4 字节浮点型 8 字节双精度型和 16 字节长双精度型

随机推荐

  • 访问 ListView 编辑命令上的控件

    In my ListView我有一个ItemTemplate and EditItemTemplate分别看起来像这样 gt 当我单击 编辑 按钮时 它切换到EditItemTemplate查看右侧 我想预填充Textbox并选择对应的op
  • 生成 JSONObject 字符串键

    我有现有的代码使用org json JSONObject的迭代器 JSONObject obj new JSONObject obj put key1 value1 obj put key2 value2 Iterator keys obj
  • XSLT 转换未提供正确的输出

    我的 XSLT 转换遇到了一些小问题 我有以下 XSLT
  • 如何在玻璃上获得可读的文本(wpf)

    这是两个屏幕截图 白色背景上的全玻璃窗 http trotsenko com ua stackoverflow 2010 01 13 20Glass 20Window 20over 20a 20white 20background png
  • openAi-gym 名称错误

    我正在尝试在 WSL 上使用 OpenAI 著名的 Gym 模块并在 python 3 5 2 上执行代码 当我尝试运行环境时正如这里所解释的 https gym openai com docs 使用代码 import gym env gy
  • 是什么导致了这个“关闭句柄延迟读取”错误?

    我刚刚从最新的源安装了 GHC 现在我的程序给了我一条关于 关闭句柄延迟读取 的错误消息 这是什么意思 基本的惰性 I O 原语 hGetContents 产生一个String惰性地 它只根据需要从句柄中读取 以生成程序实际需要的字符串部分
  • 使用 Jquery 过滤表行

    我发现一个 Jquery 脚本可以根据输入字段进行表过滤 该脚本基本上采用过滤器 分割每个单词并使用每个单词过滤表行 因此 最后您将得到一个包含输入字段中所有单词的行列表 http www marceble com 2010 02 simp
  • Boost Graph Library - 有向图的最小生成树

    我有一个问题 要求我在 Boost Graph Library 中找到有向图的最小生成树 我的第一次尝试是使用深度优先搜索和 DFS 访问者 我的计划是忽略除树边回调之外的所有边 这是行不通的 我用下面的例子来说明原因 我的问题是我是否可以
  • 在 Scala Spark 中加入不同 Dataframe 时动态选择多个列

    我有两个 Spark 数据框df1 and df2 有没有办法在连接这两个数据帧时动态选择输出列 以下定义在内部联接的情况下输出 df1 和 df2 中的所有列 def joinDF df1 DataFrame df2 DataFrame
  • Doctrine2...最佳补水模式?

    我正在设计一个房间预订系统 它有九个实体 它们都相互关联 在此特定实例中 我从实体中检索 10 30 行entry其中有 25 个属性 每个条目都有一个room其中有 10 个属性 我需要所有的条目信息以及entry gt room gt
  • 来自 Maven 的 Java OpenCV

    有没有办法从存储库获取 OpenCV 我应该添加到哪个工件pom xml 我找到的每个教程都是从 14 年开始的 似乎有些东西发生了变化 他们说它还没有出现在官方 Maven 存储库中 但我找到了条目
  • 创建使用 .NET 4.0 的应用程序池

    我使用以下代码创建应用程序池 var metabasePath string Format IIS 0 W3SVC AppPools serverName DirectoryEntry newpool DirectoryEntry appp
  • 上传到谷歌云存储时转换音频文件

    我有一个应用程序 用户可以在其中录制音频 然后相互 发送 我写的是 发送 因为实际上文件存储在服务器上 并且只是在收件人想要收听时提供给他们 我的问题是 我需要将录音 当前为 caf 重新格式化为 mp3 这样它们就会更小 这样我就可以用我
  • MySQL 的 C++ 连接器

    EDITED 我的问题是这篇文章底部的错误 这是我的附加包含目录 C Program Files boost C Program Files MySQL MySQL Connector C 1 1 3 include C Program F
  • 对未使用的变量使用占位符时出现 MatchError

    使用 Scala 2 13 x 我得到scala MatchError null当我对未使用的变量使用占位符时 scala gt object Test val Any null object Test scala gt Test scal
  • 如何在 Linux 中获取 .Net 文件的 AssemblyVersion

    有没有办法在不使用 mono 的情况下在 Linux 中获取 Net 可执行文件的 AssemblyVersion 我想要的是一个脚本或命令 可以让我在 Linux 机器上获取 AssemblyVersion 我试过 strings fil
  • 我的 NgRx 效果不起作用,没有任何反应

    我的 NgRx 效果有问题 该应用程序正确地添加到商店 不幸的是我的请求效果没有执行 即在启动添加新车时 将其添加到商店 仅此而已 问题是我的效果没有控制台日志 没有由于错误的网址而导致的 http 错误 什么也没有 我的应用程序代码 Re
  • Android textview 用作标签和值

    我想将两个文本视图分组为一个组并使用标签和值 android中是否有任何组件可以将两个textview分组 在android布局中如何实现呢 您可以使用
  • 节点拒绝应用样式,因为其 MIME 类型('text/html')不是受支持的样式表 MIME

    我要提供静态服务index html with main css使用此节点服务器 该serve js var express require express var cors require cors var app express var
  • RuntimeError:只能计算浮点类型的平均值。取而代之的是字节。对于平均值 += images_data.mean(2).sum(0)

    我有以下代码 Device configuration device torch device cuda 0 if torch cuda is available else cpu seed 42 np random seed seed t