如何在批量归一化中对更深层划分为迷你批处理?

时间:2019-10-01 16:36:48

标签: deep-learning

假设我们有数据集X(2D数组),并将其分为批次// initialize tasks let tasks = new Map([ ["Attendance", 1], ["Table Captain", 4], ["Teacher's Helper", 2], ["Board Eraser", 2], ["Light Switcher", 1], ["Librarian", 2], ["Lunch Helper", 1], ["Equipment Manager", 3], ["Trash Monitor", 2], ["Tech Specialist", 1], ["Paper Passer", 3], ["Pencil Sharpener", 1] ]); // initialize people by counting total hands for all tasks let totalPeople = 0; for (let p of tasks.values()) totalPeople += p; // and give each person an empty list of tasks for each assignment let people = Array.apply(null, Array(totalPeople)).map(() => new Array()); function assign(tasks, people) { let moreAssignmentsMayBePossible = true; let assignments = 0; outer: while (moreAssignmentsMayBePossible) { let nextIndex = 0; for (let t of tasks) { let initialIndex = nextIndex; let [name, count] = [t[0], t[1]]; while (count > 0) { if (nextIndex >= people.length) { nextIndex = 0; } let candidate = people[nextIndex++]; if (candidate.indexOf(name) == -1 && candidate.length == assignments) { candidate.push(name); count --; } else if (nextIndex == initialIndex) { moreAssignmentsMayBePossible = false; break outer; // no more assignments possible } } } assignments ++; // yay! finished a full assignment } // drop extra tasks from over-burdened people people.forEach((o) => o.length = assignments); return assignments; } assign(tasks, people); people.forEach((o, i) => console.log(i, o.length, o.join(", ")));。 然后对每个批次进行归一化,然后将批次元素的每个第i个分量乘以参数import requests from requests_kerberos import HTTPKerberosAuth, REQUIRED, OPTIONAL, DISABLED r = requests.get("https://cas.id.ubc.ca/ubc-cas/login", auth=HTTPKerberosAuth(mutual_authentication=OPTIONAL)) ,然后将其添加到X_1, ..., X_k

批处理规范化层可以重复多次,但我没有发现它如何在网络中更深入地实现。

在下一个BN层中,我们是否使用与开始时相同的划分方式进行批处理(在X中与第一层BN层使用相同的行),只是添加了新的gamma_ibeta_i参数,还是我们从头开始为每个图层的输入做这件事?

希望,我的问题很清楚。

0 个答案:

没有答案