小编Bri*_*sco的帖子

Python Tensorflow - 多次运行 model.fit 而不重新实例化模型

背景

我正在观看YouTube上一门热门的机器学习速成课程。

3:35:50,他提到模型可能过度拟合,因此用更少的 epoch 再次拟合。

由于他没有重新实例化模型,这是否相当于用相同的数据拟合模型,从而继续过度训练?

我的问题

假设您已创建模型并准备好数据。

你跑:

model.fit(train_images, train_labels, epochs=10)
model.fit(train_images, train_labels, epochs=8)
Run Code Online (Sandbox Code Playgroud)

这相当于运行:

model.fit(train_images, train_labels, epochs=18)
Run Code Online (Sandbox Code Playgroud)

或者:

model.fit(train_images, train_labels, epochs=8)
Run Code Online (Sandbox Code Playgroud)

如果之前拟合的数据被覆盖,为什么model.fit第二次运行会以之前模型的精度开始?

在有关保存和训练模型的多个 其他 问题中,公认的解决方案是加载先前训练的模型,然后model.fit再次运行。

如果这会覆盖预先存在的权重,那么这是否就违背了保存模型的初衷?第一次使用新数据训练模型不是等效的吗?

在多个相似的数据集上训练模型同时保持所有数据的准确性的适当方法是什么?

python keras tensorflow

4
推荐指数
1
解决办法
4691
查看次数

遍历嵌套列表并计算元素的平均值

我正在使用 Riot 的 API 开发一个应用程序,用于分析玩家的英雄联盟比赛历史数据。


我有一个包含商品名称购买时间(以秒为单位)的列表

item_list =
[['Boots of Speed', 50], 
['Health Potion', 60], 
['Health Potion', 80],
['Dorans Blade', 120],  
['Dorans Ring', 180], 
['Dorans Blade', 200], 
['Dorans Ring', 210]]
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为包含商品名称及其平均购买时间的唯一商品列表。

对于此示例,我希望将列表转换为:

['Boots of Speed', 50]
['Health Potion', 70]
['Dorans Blade', 160]
['Dorans Ring', 195]
Run Code Online (Sandbox Code Playgroud)

我尝试的解决方案是创建一个空字典,迭代列表,将字典键设置为项目名称,将平均时间设置为键值。

dict = {}
for item in item_list:
    item_name = item[0]
    time_of_purchase = item[1]
    dict[item_name] = (dict[item_name] + time_of_purchase) / 2 # Would cast this as …
Run Code Online (Sandbox Code Playgroud)

python iteration nested-lists

1
推荐指数
1
解决办法
797
查看次数

C++:数组的 Setter 和 Getter

我正在努力寻找在类中初始化(私有)数组并从类外部获取/设置值的正确格式。

我的代码是半功能的,但在格式不正确时感觉很尴尬。 它只返回数组的第一个元素,我希望它返回所有内容。阅读代码注释以获取更多详细信息。

注意:这是我正在为学校工作的项目(其中很小的一部分)——必须使用数组,而不是向量或列表。


学生.h

class Student {
public:
    // Upon researching my issue, I read suggestions on passing pointers for arrays:
    void SetDaysToCompleteCourse(int* daysToCompleteCourse[3]);
    int* GetDaysToCompleteCourse(); // Ditto @ above comment.
private:
    int daysToCompleteCourse[3];
Run Code Online (Sandbox Code Playgroud)

学生.cpp

#include "student.h"

void Student::SetDaysToCompleteCourse(int* daysToCompleteCourse) {
    // this->daysToCompleteCourse = daysToCompleteCourse; returns error (expression must be a modifiable lvalue)
    // Feels wrong, probably is wrong:
    this->daysToCompleteCourse[0] = daysToCompleteCourse[0];
    this->daysToCompleteCourse[1] = daysToCompleteCourse[1];
    this->daysToCompleteCourse[2] = daysToCompleteCourse[2];
}

int* Student::GetDaysToCompleteCourse() {
    return daysToCompleteCourse;
}
Run Code Online (Sandbox Code Playgroud)

控制台应用程序1.cpp

#include "pch.h"
#include …
Run Code Online (Sandbox Code Playgroud)

c++ arrays getter-setter

1
推荐指数
1
解决办法
7535
查看次数