超算第三轮考核AI方向

超算第三轮考核AI方向

任务0:学习安装anaconda和pytorch

在这里插入图片描述

任务1:继续学习python基础语法,并完成作业

1、生成如下序列

  1. 10,20,30,40,50,60

    l1=[10*x for x in range(1,7)]
    
  2. 1,4,9,16,25,36,49

l2=[x*x for x in range(1,8)]
  1. 10,-20,30,-40,50,-60
    使用简单的if-else语句过滤

    l3=[10*x if x%2!=0 else -x*10 for x in range(1,7)]
    
  2. 10,30,50(要求在 1 的基础上进行过滤)
    if语句过滤

    l4=[10*x for x in range(1,7) if x%2!=0]
    
  3. 打印乘法口诀表 (一行完成)
    先用制表符将内层for循环创建的每一行元素的列表用join函数连接成一个行字符串,再通过外层循环,使用换行符将每个行字符串连接成一个完整的乘法口诀表

print("\n".join(["\t".join(["{}*{}={}".format(j, i, i*j) for j in range(1, i+1)]) for i in range(1, 10)]))

2、完成计时器对象

由于time.time()函数的精度不够,故使用time.perf_counter()获取时间,并将时间间隔存入列表中

import time

class Timer:
	def __init__(self):
		self.time_list = []
		self.start_time = None
	def start(self):
		self.start_time = time.perf_counter()
	def stop(self):
		self.stop_time = time.perf_counter()
		self.time_interval = self.stop_time - self.start_time
		self.time_list.append(self.time_interval)
		return self.time_interval
	def avg(self):
		return sum(self.time_list)/len(self.time_list)
	def sum(self):
		return sum(self.time_list)
	def cumsum(self):
		return self.time_list

if __name__ == "__main__":
	timer = Timer()
	timer.start()
	x,y = 1,2
	print(x + y)
	print(f"{timer.stop():.8f} sec")
	print(timer.time_list)

3、完成累加器 Accumulator 类

Accumulator 是一个实用程序类,用于对多个变量进行累加; 提示:例如定义 n=2 的累加器 a,其会定义一个大小为 2 的列表 [0,0]; 调用 a.add(2,3) 之后其列表的值 对应累加为 [2,3]; a[idx] 则返回列表对应的索引的值; reset 重置这个列表为全零 [0,0]

在完成以上需求的基础上,我添加了一个改变列表长度的方法resize,并且能在传入的变量个数大于列表长度的时候自动拓展列表长度

class Accumulator:
	def __init__(self,n):
		self.n = n
		self.A_list = [0] * n
	#改变列表长度
	def resize(self,new_size):
		if new_size > self.n:
			self.n = new_size
			self.A_list += [0]*(new_size - len(self.A_list))
		else:
			self.n = new_size
			self.A_list = self.A_list[new_size]

	def add(self,*args):
		if len(args) > self.n:
			self.resize(len(args))
		#enumerate返回枚举对象,类似索引值和目标值的键值对
		for i,val in enumerate(args):
			self.A_list [i] += val
		#也可以用zip函数实现
		#self.A_list = [sum(x) for x in zip(args,self.A_list)]
	def reset(self):
		self.A_list = [0] * self.n
	#下标索引
	def __getitem__(self,index):
		return self.A_list[index]

if __name__ == "__main__":
	a = Accumulator(4)
	a.add(1,2,3,4,5)
	print(a.A_list)

4、 完成一个斐波那契数生成函数 (生成器)

f = fib() 可以不断调用 next(f) 并不断返回下一个值

def fib():
    a, b = 0, 1
    while True:
        yield b
        a, b = b, a + b

if __name__=="__main__":
	num=0
	f = fib()
	while(num<=10):
		print(next(f))
		num+=1

任务2:完成测试

在这里插入图片描述

任务3: 深度学习入门

由于时间问题,对深度学习的了解不多。就我浅薄的理解,深度学习大概是建立一个模型,将要训练的案例转化为特殊的数据类型:n维向量或叫张量(tensor),模型的处理结果大概是概率或基于概率得出的结论。不过模型是怎样得出结论的,这个过程目前好像还是黑箱操作?不可见的?

对于模型如何处理张量内包含的数据,以及“理解“”数据的方式,我有些费解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值