Gao_suo 2021-10-07 11:10 采纳率: 0%
浏览 46

python中max()重复使用的问题


import torch
length_of_sequences = map(len, [[1,2,3,3,3,3,3,3,3,3,3]])

batch_target_tensor = torch.ones(12,
                                 max(length_of_sequences), dtype=torch.long) * (-100)
batch_target_tensor1 = torch.zeros(1,
                                   max(length_of_sequences), dtype=torch.long) * (-100)

print(batch_target_tensor,batch_target_tensor1)

打印batch_target_tensor1时出现报错max() arg is an empty sequence。

切换成如下模式就不会报错,想知道是为什么,有没有帮忙解决一下。

import torch
length_of_sequences = map(len, [[1,2,3,3,3,3,3,3,3,3,3]])
length_of_sequences_max = max(length_of_sequences)
batch_target_tensor = torch.ones(12,
                                 length_of_sequences_max, dtype=torch.long) * (-100)
batch_target_tensor1 = torch.zeros(1,
                                   length_of_sequences_max, dtype=torch.long) * (-100)
print(batch_target_tensor,batch_target_tensor1)

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-07 11:24
    关注

    两种方法肯定有区别啊,区别的主要原因应该是第二段的第4、5行会改变下一次的max函数的结果。
    第一种方法是将出事map中的最大值先求出来,后续两次调用肯定传入的是相同的max值
    但第二种就不一定了,两次调用分别求max值,如果torch.ones函数改变map的内容的话,第二次的max函数结果就不知道是什麽了。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月7日

悬赏问题

  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑