当前位置: 首页 > news >正文

Note——torch.size() umr_maximum() array.max() itertools.product()

torch.size

在这里插入图片描述

Problem

TypeError: ‘torch.Size’ object is not callable

Reason Analysis

torch.Size函数不可调用
因为torch只可以.size()

shape

Solution

将y.shape()替换为y.size()

y.shape

y+=torch.normal(0,0.01,y.size())

2

return umr_maximum(a, axis, None, out, keepdims, initial, where)

Problem

ValueError: zero-size array to reduction operation maximum which has no identity

Reason Analysis

数组“array”的“size”为0,所以无法进行计算;

umr_maximum()函数
array.max()函数

Solution

出错:
array.max()
具体原因:
“array”的size为0了,于是元素的个数为0,因而就不存在最大值

在调试时,可以先对数据的规范性进行验证
验证数组array的size是否为0

assert array.size != 0

itertools.product()

Formula

itertools.product(*iterables, repeat=1)

product 用于求多个可迭代对象的笛卡尔积(Cartesian Product)
它跟嵌套的 for 循环等价.

即:
product(A, B)

((x,y) for x in A for y in B)
的效果是一样的

本质essence:
先合成一个元组再组成list

Param

  • iterables 是可迭代对象
  • repeat指定 iterables 重复几次
    即:
    product(A,repeat=3)等价于product(A,A,A)

For example

import itertools
A = [1, 2, 3]
B = ['A', 'B', 'C']
for i in itertools.product(A,B):print(i)

在这里插入图片描述

直接使用

分别生成元组,然后合成一个list

import itertools
a = itertools.product(['A','B','C'], ['D','E'])
b = list(a)   
#按照顺序生成笛卡尔积,repeat默认为1
print(a,'\n','\n')
print(b)

set param

repeat=3

a = list(itertools.product(['A','B','C'], ['D','E'], repeat=3))
print(a) 

此list长度为216

在不设置 repeat 参数的时候,默认是1,生成的list长度时6 —— permutation and combination
3*2=6种

当设置 repeat=3 时,也就是说将 repeat=1(默认)的结果再重复2次后(也就是最后一共有3套一样的第一层结果)
从第一个结果(6种结果)取出一个元素的可能有6种
同理,从第二第三个重复结果中取出一个元素的可能各有6种,
So, 666=216种。

others

  1. 如果要从列表中随机取出几个不重复的元素的话
    (原来的列表本身元素不重复),可用 random.sample 方法。
import random
random.seed(1)   
#设置随机数种子,可用来检测相同的随机数得到的结果是否一致n = 2
aa = random.sample(a, n)   
#随机从列表中取出n个元素
print(aa)
  1. 生成随机的坐标,另一种生成随机坐标的方法
random_list = list(itertools.product(range(1,4), range(1,2)))
# itertools.product([1,2,3],[1])
print(random_list)n = 2
aa = random.sample(random_list, n)   
#随机取出列表中的n个元素
print(aa)
http://www.lryc.cn/news/199450.html

相关文章:

  • python学习笔记6-DefaultDict
  • Redis 底层对 String 的 3 个优化
  • 简约艺术签名小程序源码/流量主小程序源码/字节跳动抖音小程序
  • Ubuntu(kylin)挂载iso文件和配置apt本地源
  • wps表格求标准差怎么算?
  • 安达发|制造企业生产排产现状和APS系统的解决方案
  • Qt判断一个点在多边形内还是外(支持凸边形和凹变形)
  • MySQL导入数据库出现 Got error 168 from storage engine错误
  • 使用 VS Code 作为 VC6 的编辑器
  • Peter算法小课堂—蠕动区间
  • Vant和ElementPlus在vue的hash模式的路由下路由离开拦截使用Dialog和MessageBox失效
  • 上海市通过区块链技术攻关 构建数字经济可信安全技术底座
  • Java 面试题
  • layui 表格 展开
  • [尚硅谷React笔记]——第4章 React ajax
  • Richard Stallman 正在与癌症作战
  • MathType7.4最新免费版(公式编辑器)下载安装包附安装教程
  • 如何支持h.265视频
  • vue 放大镜(简易)
  • 【计算机网络】第一章——概述
  • vue实现在页面拖拽放大缩小div并显示鼠标在div的坐标
  • LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)
  • 【数据结构】线性表(六)堆栈:顺序栈及其基本操作(初始化、判空、判满、入栈、出栈、存取栈顶元素、清空栈)
  • 父组件可以监听到子组件的生命周期吗?
  • [开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具
  • 【C++ Primer Plus学习记录】数组的替代品
  • JSP免杀马
  • 2023-10-16 node.js-调用python-记录
  • Kotlin 设置和获取协程名称
  • awk命令的使用