2021年人工神经网络课程作业处理记录
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年人工神经网络课程作业处理记录相关的知识,希望对你有一定的参考价值。
§01 作业处理
在2021年秋季 人工神经网络 课程中,是由两个班级:
- 清华大学校内课程;
- 深圳研究院课程;
1.1 作业要求
全学期的作业总共有四次作业和一篇课程小论文。
1.1.1 四次作业要求
- Neural Network/HOMEWORK-2021/第一次作业要求.md · 卓晴/教学资源 - Gitee.com
- Neural Network/HOMEWORK-2021/第二次作业要求.md · 卓晴/教学资源 - Gitee.com
- Neural Network/HOMEWORK-2021/第三次作业要求.md · 卓晴/教学资源 - Gitee.com
- Neural Network/HOMEWORK-2021/第四次作业要求.md · 卓晴/教学资源 - Gitee.com
1.1.2 小论文要求
- 作业题目: 期末小论文要求
- 作业说明: 期末论文报告内容可以采用以下三种形式:
- (1) 综述类型: 参照期刊或者会议论文中的综述类的文章,对于涉及到人工神经网络相关的某些理论发展方向、工程
应用技术、新的算法模式等进行综述。建议所涉及到的参考论文不少于10篇。 - (2) 工程应用类型:参照期刊或者会议论文的研究性论文,结合自己未来课题方向,应用神经网络相关算法,解决工
程应用问题。可以包括工程应用,算法更新或者交叉学科应用等。 - (3) 理论研究类型:可以针对人工神经网络算法所涉及到的算法理论相关的问题进行研究和讨论。比如对算法过程中的收敛问题、推广性的问题、训练算法中的超参调整问题的研究; 与其他优化方法、数值计算方法、机器学习方法相结合提出新的算法理论框架; 或者将现有的算法进行相互融合、深度改造形成有新特性的算法等。
- (1) 综述类型: 参照期刊或者会议论文中的综述类的文章,对于涉及到人工神经网络相关的某些理论发展方向、工程
其它要求参考课堂对于报告的要求讲解。
§02 作业统计
在今天(2021-12-27)开始处理所有提交的四次作业,
下载与解压
作业下载
作业从网络学堂打包下载,两个班级的作业分别存储在:H:\\Teaching\\NN2021A中。
├─HWSZH
└─HWTSH
作业解压缩
下载所有作业文件以及很多提交的作业都是压缩文件。使用 Bandizip 解压缩软件将它们解压缩到各自的目录。
▲ 图1.1 自动加压缩到各自的目录利用Bandizip加压缩软件,可以避免在以往使用winzip, winrar软件过程中碰到的格式错误问题。批量加压缩可以大大提高加压缩的效率。
▲ 图1.2 解压缩作业文件下载成绩登记表格
从Infor中导出学生信息EXCEL表格。
▲ 图2.2.1 导出学生信息设置学生信息的表头信息,具体信息如下所示。
▲ 图2.2.2 学生信息EXCEL表格表头作业处理
根据 2020秋季人工神经网络作业登记与批改 处理方式,编写处理程序完成成绩的自动登录。
处理程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# SETSCORE.PY -- by Dr. ZhuoQing 2021-01-02
#
# Note:
#============================================================
from head import *
import inforsub
#------------------------------------------------------------
def dropfile2studentid():
tspdropfile2pastetext()
pastestr = clipboard.paste()
strsect = pastestr.split('\\\\')
for s in strsect[-1:0:-1]:
if s.count('_') >= 2:
if s.split('_')[0].isdigit():
return s.split('_')[0]
if s.split('_')[0][0] == 'P':
return s.split('_')[0]
return "ERROR"
#------------------------------------------------------------
def setscore(idstr, hwstr, score):
ret = inforsub.setexcelcellstring(inforsub.tshfile, idstr, hwstr, score)
if ret >= 0: return 'TS',ret
ret = inforsub.setexcelcellstring(inforsub.shzhfile, idstr, hwstr, score)
if ret >= 0: return 'SHZH',ret
return ' ', -1
#------------------------------------------------------------
def appendscore(idstr, hwstr, score):
ret = inforsub.appendexcelcellstring(inforsub.tshfile, idstr, hwstr, score)
if ret >= 0:
return 'TS',ret
ret = inforsub.appendexcelcellstring(inforsub.shzhfile, idstr, hwstr, score)
if ret >= 0:
return 'SHZH',ret
return ' ', -1
def showscore(idstr):
ret = inforsub.showexcelinfor(inforsub.tshfile, idstr)
if ret >= 0: return 'TS', ret
ret = inforsub.showexcelinfor(inforsub.shzhfile, idstr)
if ret >=0: return 'SHZH', ret
return ' ', -1
#------------------------------------------------------------
if __name__ == "__main__":
idstr = dropfile2studentid()
if idstr == 'ERROR':
printf("No student id is found by drop file !\\a")
exit()
printf('ID : %s\\a'%idstr)
#--------------------------------------------------------
hwstr = ''
scorestr = ''
printf('Begin Modified:')
x, y = showscore(idstr)
printff(x,y)
if len(sys.argv) > 1:
hwstr = sys.argv[1]
if hwstr in "hw1 hw2 hw3 hw4".split():
hwstr = hwstr.upper()
if hwstr in "1 2 3 4".split():
hwstr = "HW%s"%hwstr
if hwstr == 'note':
hwstr = 'NOTE'
if hwstr == 'n':
hwstr = 'NOTE'
if hwstr == 'paper':
hwstr = 'PAPER'
if hwstr == 'p':
hwstr = 'PAPER'
if not hwstr in 'HW1 HW2 HW3 HW4 PAPER NOTE'.split():
printf('HW string error[%s].\\a'%hwstr)
exit()
if len(sys.argv) > 2:
scorestr = sys.argv[2]
if len(hwstr) > 0:
if hwstr == 'NOTE':
appendscore(idstr, 'NOTE', scorestr)
else: setscore(idstr, hwstr, scorestr)
#--------------------------------------------------------
printf("After Modified:")
showscore(idstr)
printf(' \\a')
#------------------------------------------------------------
# END OF FILE : SETSCORE.PY
#============================================================
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# INFORSUB.PY -- by Dr. ZhuoQing 2020-06-18
#
# Note:
#============================================================
from headm import * # =
import pandas as pd
#------------------------------------------------------------
tshfile = tspstring2text('TSH')
shzhfile = tspstring2text('SHZH')
HOMEWORK_SHEET = 'homework'
#------------------------------------------------------------
def showexcel(filename):
excelfile = pd.read_excel(filename, sheet_name=HOMEWORK_SHEET)
listdata = excelfile.values.tolist()
for id,l in enumerate(listdata):
printff(id, l)
def showexcelinfor(filename, sid):
excelfile = pd.read_excel(filename, sheet_name=HOMEWORK_SHEET)
rowid = -1
for id, content in excelfile.items():
if id == '学号':
content = [str(s) for s in content]
if str(sid) in content:
rowid = content.index(str(sid))
break
if rowid < 0:
return rowid
printf(excelfile.values.tolist()[rowid])
return rowid
#------------------------------------------------------------
def setexcelcellstring(filename, sid, col, num):
excelfile = pd.read_excel(filename, sheet_name=HOMEWORK_SHEET)
rowid = -1
for id, content in excelfile.items():
if id == '学号':
content = [str(s) for s in content]
if str(sid) in content:
rowid = content.index(str(sid))
break
if rowid < 0:
return rowid
printff(rowid, col)
excelfile[col] = excelfile[col].astype(str)
excelfile.at[rowid, col] = num
excelfile.to_excel(filename, sheet_name=HOMEWORK_SHEET, index=False)
return rowid
#------------------------------------------------------------
def appendexcelcellstring(filename, sid, col, num):
excelfile = pd.read_excel(filename, sheet_name=HOMEWORK_SHEET)
rowid = -1
for id, content in excelfile.items():
if id == '学号':
content = [str(s) for s in content]
if str(sid) in content:
rowid = content.index(str(sid))
break
if rowid < 0:
return rowid
printff(rowid, col)
excelfile[col] = excelfile[col].astype(str)
if excelfile.at[rowid, col] != 'nan':
excelfile.at[rowid, col] = num + ', ' + excelfile.at[rowid, col]
else: excelfile.at[rowid, col] = num
if len(num) == 0: excelfile.at[rowid, col] = ''
excelfile.to_excel(filename, sheet_name=HOMEWORK_SHEET, index=False)
return rowid
#------------------------------------------------------------
def getexcelcellstring(filename, sid, col):
excelfile = pd.read_excel(filename, sheet_name=HOMEWORK_SHEET)
rowid = -1
for id, content in excelfile.items():
if id == '学号':
content = [str(s) for s in content]
if str(sid) in content:
rowid = content.index(str(sid))
break
if rowid < 0:
return rowid
# printff(rowid, col)
# excelfile[col] = excelfile[col].astype(str)
return excelfile.at[rowid, col]
#------------------------------------------------------------
if __name__ == "__main__":
# setexcelcellstring(tshfile, '2020210975', 'HW1', 88)
# s = getexcelcellstring(tshfile, '2020210975', 'HW1')
# printf(s)
# showexcel(shzhfile)
x=showexcelinfor(shzhfile, '2020280355')
printf(x)
#------------------------------------------------------------
# END OF FILE : INFORSUB.PY
#============================================================
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# SETALLSCORE.PY -- by Dr. ZhuoQing 2021-12-27
#
# Note:
#============================================================
from headm import * # =
#------------------------------------------------------------
import inforsub
#------------------------------------------------------------
def dropfile2studentid():
tspdropfile2pastetext()
pastestr = clipboard.paste()
strsect = pastestr.split('\\\\')
printf(strsect)
for s in strsect[-1:0:-1]:
if s.count('_') >= 1:
if s.split('_')[0].isdigit():
return s.split('_')[0]
if s.split('_')[0][0] == 'P':
return s.split('_')[0]
return "ERROR"
#------------------------------------------------------------
def setscore(idstr, hwstr, score):
ret = inforsub.setexcelcellstring(inforsub.tshfile, idstr, hwstr, score)
if ret >= 0: return 'TS',ret
ret = inforsub.setexcelcellstring(inforsub.shzhfile, idstr, hwstr, score)
if ret >= 0: return 'SHZH',ret
return ' ', -1
#------------------------------------------------------------
def appendscore(idstr, hwstr, score):
ret = inforsub.appendexcelcellstring(inforsub.tshfile, idstr, hwstr, score)
if ret >= 0:
return 'TS',ret
ret = inforsub.appendexcelcellstring(inforsub.shzhfile, idstr, hwstr, score)
if ret >= 0:
return 'SHZH',ret
return ' ', -1
def showscore(idstr):
ret = inforsub.showexcelinfor(inforsub.tshfile, idstr)
if ret >= 0: return 'TS', ret
ret = inforsub.showexcelinfor(inforsub.shzhfile, idstr)
if ret >=0: return 'SHZH', ret
return ' ', -1
#------------------------------------------------------------
tspdropfile2pastetext()
pastestr = clipboard.paste().split('\\n')
#------------------------------------------------------------
id = []
for ps in pastestr:
pss = ps.split('\\\\')[-1]
pss = pss.split('_')[0]
if len(pss) > 0:
id.append(pss)
id = list(set(id))
printf(id, len(id))
#------------------------------------------------------------
if __name__ == "__main__":
hwstr = ''
scorestr = ''
if len(sys.argv) < 3:
printf("Usage: setallscore hw score\\a")
exit()
#--------------------------------------------------------
if len(sys.argv) > 1:
hwstr = sys.argv[1]
if hwstr in "hw1 hw2 hw3 hw4".split():
hwstr = hwstr.upper()
if hwstr in "1 2 3 4".split():
hwstr = "HW%s"%hwstr
if hwstr == 'note':
hwstr = 'NOTE'
if hwstr == 'n':
hwstr = 'NOTE'
if hwstr == 'paper':
hwstr = 'PAPER'
if hwstr == 'p':
hwstr = 'PAPER'
if not hwstr in 'HW1 HW2 HW3 HW4 PAPER NOTE'.split():
printf('HW string error[%s].\\a'%hwstr)
exit()
if len(sys.argv) > 2:
scorestr = sys.argv[2]
for idstr in id:
# printf('Begin Modified:')
# showscore(idstr)
if len(hwstr) > 0:
if hwstr == 'NOTE':
appendscore(idstr, 'NOTE', scorestr)
else: setscore(idstr, hwstr, scorestr)
# printf("After Modified:")
# showscore(idstr)
id = list(set(id))
printf(id, len(id))
printf('\\a')
#------------------------------------------------------------
# END OF FILE : SETALLSCORE.PY
#============================================================
以上是关于2021年人工神经网络课程作业处理记录的主要内容,如果未能解决你的问题,请参考以下文章