tensorflow
文章平均质量分 96
Nobody33
人工智能,并行计算学习者
展开
-
第T11周:优化器对比实验
*这个图我们可以直观的看出来使用Adam和SGD两种优化器对训练数据的影响,也直观的看出为什么一般用Adam就是比较好的选择,SGD随机性太强,震荡过于严重,得出的结果数据不好,容易陷入局部最优解;而Adam作为动量法的精华,使得参数比较平稳。但是根本的原则还是根据实际情况选择,SGD也有比较好的应用场景。图片总数为: 1800。原创 2024-02-23 11:14:37 · 891 阅读 · 0 评论 -
第T10周:数据增强
【代码】第T10周:数据增强。原创 2024-02-02 22:08:24 · 698 阅读 · 0 评论 -
第T9周:猫狗识别2
不需要在循环开始时设置学习率,可以在训练循环开始之前设置它。验证loss为:0.0730。验证loss为:0.0382。验证loss为:0.0675。验证loss为:0.0327。验证loss为:0.0127。验证loss为:0.0211。验证loss为:0.0187。验证loss为:0.0182。验证loss为:0.0186。验证loss为:0.0186。验证准确率为:0.9673。验证准确率为:0.9830。验证准确率为:0.9801。验证准确率为:0.9901。验证准确率为:0.9972。原创 2024-01-04 11:28:21 · 946 阅读 · 1 评论 -
第T8周:猫狗识别
函数是Keras库中的一个函数,用于在单个批次的数据上训练模型。这个函数的主要作用是在给定的输入数据和对应的目标数据上,使用模型的优化器进行一次前向传播和反向传播,从而更新模型的权重。如果设置为True,那么返回的结果将是一个字典,包含每个评估指标的值;如果设置为False,那么返回的结果将是一个列表,包含每个评估指标的值。还可以是一个字典,包含输入数据和目标数据的字典。如果设置为True,那么在每次调用train_on_batch()时,都会重置模型的评估指标。可选参数,用于指定每个样本的权重。原创 2023-12-26 21:33:27 · 928 阅读 · 1 评论 -
第T7周:咖啡豆识别
本周由于上周使用VGG-16完成的任务,已经将本周的任务研究的差不多,所以本周只有学习心得。主要是对学习率的调整,这次数据的数量是1200,比上次少了600.我想着学习率可能会低一些,不过试出来直接跌了一个数量级。最重要的就是掌握了调参的经验。设置学习率尽量少设1开头的,其他数字随便用,一般不会陷入局部最优解,也就是准确率卡在一个地方不动。当准确率出现较大幅度的震荡的时候就是学习率设高了。在峡谷两端跳过去跳过来的。最好的一个设计就是学习率梯度衰减。原创 2023-12-19 22:26:25 · 921 阅读 · 1 评论 -
第T6周:好莱坞明星识别
图片总数为: 1800。原创 2023-12-09 11:40:52 · 360 阅读 · 0 评论 -
第T5周:运动鞋品牌识别
这次加入了早停和指数变化学习率,确实是很有用的方法,但是最开始自己设置参数时,总感觉教案设置的学习率太大(虽然后面公布答案就是改的学习率)。然而,随着训练的深入,模型参数的变化速度可能会变得非常快,导致学习率过高,从而影响模型的训练效果。因此,为了解决这个问题,可以使用学习率衰减策略来逐渐降低学习率。最小变化量,这里设置为0.001,表示当验证集上的准确性变化小于这个值时,认为已经达到了停止训练的条件。容忍度,这里设置为20,表示如果在连续20个训练周期内验证集上的准确性没有提高,就触发提前终止训练。原创 2023-12-04 19:51:53 · 955 阅读 · 0 评论 -
第T4周:猴痘病识别
局部最优解是在某个特定搜索空间中,比其邻近解更优的解决方案。但若只着眼于局部,可能会忽视掉其他可能的全局最优解,导致结果并非真正最优化。在启发式算法中,局部最优值的陷入往往无法避免,因为这类算法本质上采用了一种贪心策略,这在客观上决定了不符合贪心规则的更好(或者最优)解会错过。陷入局部最优解并不全然是坏事。对于某些问题规模较大的情况,例如大规模NP-hard问题,找到全局最优解在合理的时间内几乎是不可能的。这时候,我们往往会倾向于接受局部最优解,因为局部最优解的质量不一定都是差的。原创 2023-12-03 21:50:29 · 871 阅读 · 1 评论 -
第J1周:ResNet-50算法实战与解析
【代码】第J1周:ResNet-50算法实战与解析。原创 2023-11-03 10:29:18 · 1201 阅读 · 0 评论 -
第T3周:天气识别
通过设置相同的seed值,可以确保每次运行程序时,生成的随机数序列是相同的。它的基本思想是在每次训练迭代中,随机选择一部分神经元,使其临时失效,即让这些神经元的激活值以一定的概率p变为0。但需要注意的是,Dropout不应在测试或验证阶段使用,因为它在训练阶段是随机的,而在测试阶段需要完整的网络来评估模型的准确性。是Matplotlib库中的一个函数,用于创建子图.接受三个参数:行数,列数和子图的索引号,例如,plt.subplot(1, 2, 1)将创建一个1行2列的子图网格,并选择第一个子图进行绘制。原创 2023-11-17 16:33:17 · 55 阅读 · 0 评论 -
第T2周:彩色图片分类
是numpy库中的一个函数,它的主要功能是返回输入数组中最大值的索引。如果输入数组中出现多个最大值,np.argmax将返回第一个最大值的索引。这个函数有两个参数,第一个参数是需要找到最大值索引的数组,第二个参数是指定的轴,即沿着哪个轴寻找最大值。例如,当axis=1时,函数会按行比较并找出每行的最大值索引。值得注意的是,如果不指定轴,则函数会将整个数组平铺开来,找出其中最大的那个值的索引。是一个绘图函数,它接受两个参数:x轴的数据和y轴的数据。函数进行训练,并返回一个包含训练过程中各种指标的对象。原创 2023-11-12 10:52:34 · 54 阅读 · 1 评论 -
第T1周:实现mnist手写数字识别
学习率小时会导致收敛缓慢,学习率过大又会导致模型不易收敛。因此将图像归一化可以将不同维度的特征调整到相近的区间内,就可以用统一的学习率加速模型的训练。虽然从单看ReLU函数的左边或者右边,确实是线性的,整体来看,也确实是分段函数,说它是非线性函数也勉强说得过去。这是因为ReLU激活函数在输入值小于0时为0,大于0时保持原样,因此不存在梯度为0的情况,从而使得模型训练过程中的梯度求解变得容易。不会对模型的泛化准确度造成显著影响:ReLU激活函数在保持模型训练速度的同时,并不会对模型的泛化性能产生负面影响。原创 2023-11-05 15:33:34 · 81 阅读 · 1 评论