深度之眼--科研助理面试题
请将答案写在每道题的后面,Word文档命名为自己的名字,通过邮件/微信回复提交。
一、选择题
1.如何安装pytorch?( A )
A 使用pip
B 使用apt-get
C 下载源代码变异
D 无法安装
2.pytorch中张量的阶数表示什么?( C )
A 张量的大小
B 张量的形状
C 张量的维度
D 张量的数据类型
3.在pytorch中,如何将张量从GPU移动到CPU?( A )
A 使用.to()方法
B 使用.move()方法
C 使用.copy()方法
D 使用.transfer()方法
4.下列哪个语句在python中是非法的?( B )
A x=y=z=1
B x=(y=z+1)
C x,y=y,x
D x+=y
5.Python中列表lis=[1,2,3,4,5,6],其切片lis=[-1:1:-1]结果为( D )
A [6,5]
B [1,2]
C [1,2,3,4]
D [6,5,4,3]
6.Python中,使用open方法打开文件,语法如下:open(文件名,访问模式),如果以二进制格式打开一个文件用于追加,则访问模式为( C )
A rb
B wb
C ab
D a
7.在python3中,对于以下程序正确的是( B )
lists=[1,2,3,4,5,6]
print(lists[6:])
A 报错
B []
C [1,2,3,4,5,6]
D [6]
8.以下选项中叙述正确的是( C )
A C语言的标识符可分为关键字、预定义标识符和用户标识符三类
B C语言的标识符可分为语句、变量和关键字三类
C C语言的标识符可分为函数名、变量和预定义标识符三类
D C语言的标识符可分为运算符、用户标识符和关键字三类
9.设有以下程序段
int y;
y=rand() % 30+1;
则变量 y 的取值范围是( D )
A 1<y<30
B 0≤y≤30
C 0<y≤30
D 1<y≤30
10.若有定义:int a; float b; double c; ,程序运行时输入:
1,2,3<回车>,能把 1 输入给变量 a、2 输入给变量 b、3 输入给变
量 c 的输入语句是 ( D )
A scanf("%d,%f,%f", &a,&b,&c);
B scanf("%d%f%lf", &a,&b,&c);
C scanf("%d,%lf,%lf", &a,&b,&c);
D scanf("%d,%f,%lf", &a,&b,&c);
二、解答题
1.python中列表和元组有什么区别?
列表是可变的变量,定义之后可以加入元素和删除元素;元组是不可变的,定义后元素是不可变的。
2.C++中vector和数组的区别, vector扩容?
Vector是一种容器结构,底层是用链表实现的,这是与数组主要的区别;vector可以自动扩容,如果需要手动扩容,可以使用vector的成员函数reserve,它会预分配更多的内存空间,以便在将来添加元素时不必再次分配内存。
3.什么是张量,它在 PyTorch 中如何用于表示数据?
张量是一种可以多维的数组形式,二维形式是matrix形式,与numpy的ndarray类似。
4.Python的内存管理有哪些以及原理?
Python的内存管理机制主要包括以下几个方面:
引用计数。Python使用引用计数来跟踪对象的引用数量。每当一个对象被引用时,其引用计数会增加;当一个引用被删除时,其引用计数会减少。当一个对象的引用计数为0时,解释器会将其标记为垃圾并回收其内存。
垃圾回收。Python的垃圾回收机制用于自动释放不再使用的内存。当一个对象没有任何引用指向它时,解释器会自动将其标记为垃圾,并在适当的时候将其回收。这种机制可以避免内存泄漏问题。
循环引用。在Python中,循环引用是一种常见的问题。当两个或多个对象相互引用时,它们的引用计数永远不会为0,因此无法被垃圾回收。Python通过周期检测来解决循环引用问题。当检测到循环引用时,解释器会将其标记为垃圾并回收其内存。
此外,Python内存管理还涉及到内存分配和释放,Python解释器在运行时为程序分配内存。当程序创建变量、对象或函数时,解释器会在内存中为其分配空间。Python使用堆来管理内存,这意味着内存分配和释放是动态的。
三、编程题(直接把对应解答或者代码复制进word进行答题)
1.假设你使用的是官方的CPython,说出下面代码的运行结果
a, b, c, d = 1, 1, 1000, 1000
print(a is b, c is d)
def foo():
e = 1000
f = 1000
print(e is f, e is d)
g = 1
print(g is a)
foo()
True True
True False
True
2.使用Python代码实现遍历一个文件夹的操作
import os
def traverse_directory(path):
for root, dirs, files in os.walk(path):
for file in files:
print(os.path.join(root, file))
traverse_directory('your_directory_path_here')
3.用C++编写tensorrt的(int8 量化)部署一张图片的推理的伪代码:
(只要书写相关流程:初始化、推理接口流程,此答案按照得分点评分)
空
标签:面试题,--,30,张量,2024,Python,内存,标识符,引用 From: https://www.cnblogs.com/devilmaycry812839668/p/18080391