emm太懒了 懒得做题,听说hgame有个机器学习题还0解,去学了一下
by:小帽
下载下来有一个hdf5文件,应该是出题人训练的存储点,一个txt文件,相当于密文,一个py文件是远程检查结果的脚本
首先看下检查脚本
1 | import numpy as np |
告诉了我输入的数据用空格隔断,然后会跟他后台存的答案检查一下,平均差小于0.18即可。
还有一部分信息在题目描述里,输入128位0和1,输出64位,线性函数
接下来加载一下hef5文件,发现他没存储网络结构,只存了偏移(应该是这么叫 那我们给他加上一层输入128输出64,可以了
1 | import keras |
接下来就可以利用它制作数据集了
1 | inp='' |
model.predict(xx.reshape(1,128))利用这行代码获得随机生成的x对应的y
现在有数据了,再定义一个新的神经网络来拟合那个线性函数的逆运算,也就是x和y互换。然后再解一下题目给的文件
1 | model2 = keras.Sequential() |
即使检查脚本没规定必须用0和1作为输入,float就可以,不过还是整理了一下,大于0.5的是1,小于的是0(后来也发现是因为训练次数?导致直接给小数进去误差太大,0和1可以)
1 | for i in a: |
总结:
中间其实还有很多细节没写 比如numpy里的矩阵形状,kreas喂进数据的形状,激励函数选择等等都是很迷的,其实到现在也有点怀疑网络是不是这样建。有空真的应该好好总结一下(有空===咕咕咕
代码:
1 | import h5py |