来源:投稿 作者:LSC
编辑:学姐
1.自我介绍
2.项目详解
3.为什么使用 batch内负采样?会对模型结果有什么影响?
4.深度学习中,batchsize变大的影响
5.交叉熵怎么理解?kl散度的关系
6.transformer中 attention怎么计算的?
7.概率题:
54张扑克牌,平均随机分给6个人,其中2张王都在一个人手里的概率是?
P1 = C(54, 9) * C(45, 9) * C(36, 9) * C(27, 9) * C(18, 9) * C(9, 9)
P2 = 6 * C(52, 7) * C(45, 9) * C(36, 9) * C(27, 9) * C(18, 9) * C(9, 9)
p = p2 / p1 = 6 * C(52, 7) / C(54, 9) = (6 * 52! / 7!45!) / (54! / 9!45!)
= 6 * 8 * 9 / (53 * 54) = 8 / 53
8.coding
给定一个表示二叉树的字符串,其中 A(B,C) 表示 A 为根结点,B 和 C 为 A 的左右子节点。
输出二叉树的层次遍历结果,即从上到下按层次访问该二叉树,每层单独输出一行,每层按访问的顺序从左到右输出节点编号。
样例输入:
1(2(4,5(7,8)),3(6))
样例输出:
1
2 3
4 5 6
7 8
注意给定的输入形式,输入是一个字符串
def treenode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right=right
def create(root, s):
num = ''
n = len(s)
if n <= 0:
return None
for i in range(n):
if s[i] == '(' or s[i] == ')' or s[i] == ',':
num = int(s[:i])
root = treenode(num)
if s[i] = '(':
root.left create(root.left, s[i+1:])
elif s[i] == ',':
root.right create(root.right, s[i+1:])
else:
return
break
return root
root = None
create(root, s)
def levelorder(root):
q = []
q.append([root.val, 0])
res = []
d = {}
while len(q) != 0:
temp = q[0]
q.pop(0)
if d.get(temp[1], 0) = 0:
d[temp[1]] = d.get(temp[1], 0) + 1
res.append([])
res[-1].append(temp[0].val)
else:
res[-1].append(temp[0].val)
if temp[0].left != None:
q.append(temp[0].left, temp[1] + 1)
if temp[0].right != None:
q.append(temp[0].right, temp[1] + 1)
for r in res:
for i in r:
print(i, end=" ")
print("\n")
关注“
学姐带你玩AI
”公众号,
回复“
简历
”
领取算法工程师万能简历公式+模板