文章目录
python3.6 新增f-字符串格式化
f-string用大括号 {} 表示被替换字段,其中直接填入替换内容
python从requirements.txt文件中安装库
先cd到指定目录,然后使用命令 pip install -r requirements.txt
linux下的内存查看
查看CPU占用率: top
VIRT:virtual memory usage
RES:resident memory usage。常驻内存。这个值就是该应用程序真的使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。
DATA:数据占用的内存。如果top没有显示,按f键可以显示出来。这一块是真正的该程序要求的数据空间,是真正在运行中要使用的。
内存占用率:free -m
keras 的 Model training APIs
compile method
Model.compile(
optimizer="rmsprop",
loss=None,
metrics=None,
loss_weights=None,
weighted_metrics=None,
run_eagerly=None,
steps_per_execution=None,
**kwargs
)
fit method
Model.fit(
x=None,
y=None,
batch_size=None,
epochs=1,
verbose="auto",
callbacks=None,
validation_split=0.0,
validation_data=None,
shuffle=True,
class_weight=None,
sample_weight=None,
initial_epoch=0,
steps_per_epoch=None,
validation_steps=None,
validation_batch_size=None,
validation_freq=1,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
)
evaluate method
Model.evaluate(
x=None,
y=None,
batch_size=None,
verbose=1,
sample_weight=None,
steps=None,
callbacks=None,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
return_dict=False,
**kwargs
)
predict method
Model.predict(
x,
batch_size=None,
verbose=0,
steps=None,
callbacks=None,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
)
train_on_batch method
Model.train_on_batch(
x,
y=None,
sample_weight=None,
class_weight=None,
reset_metrics=True,
return_dict=False,
)
test_on_batch method
Model.test_on_batch(
x, y=None, sample_weight=None, reset_metrics=True, return_dict=False
)
predict_on_batch method
Model.predict_on_batch(x)
keras的训练模式 fit 和 fit_generator
学习参考 主要看这个
fit_generator(
generator,
steps_per_epoch=None,
epochs=1, verbose=1,
callbacks=None,
validation_data=None,
validation_steps=None,
class_weight=None,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
shuffle=True,
initial_epoch=0
)
其中,重要的参数含义是 steps_per_epoch
, steps_per_epoch=len(x_train)/batch_size
不同于fit()
一次性加载所有的train数据集,遍历一遍就可以作为一轮epoch的结束,generator
是可以从给定的数据集中“无限”生成数据的,并且因为一次只加载数据集的一部分(generator
就是为了解决数据集过大无法一次性加载到内存的问题
),所以他并不知道什么时候才是一轮epoch的结束。
同样的,batch_size
也没有作为参数传递给fit_generator()
,所以必须有机制来判断:(1)什么时候结束一轮epoch (2)batch_size是多少
steps_per_epoch
参数实际上就是指定了每一轮epoch需要执行多少steps,也就是多少steps,才能认为一轮epoch结束