我有一个如下的LSTM模型:
TypeError: only length-1 arrays can be converted to Python scalars
每次我使用相同的数据集进行训练时,都会得到不同的模型。在大多数情况下,训练模型的性能是可以接受的,但有时确实很糟糕。我认为在训练或初始化过程中会有一些随机性。那么,如何解决所有问题以使每次培训都获得相同的模型?
答案 0 :(得分:1)
我也遇到过Keras的问题,这与随机种子有关,您可以在导入Keras之前像这样修复随机种子,以便获得一致的结果。
import numpy as np
np.random.seed(1000)
import os
import random
os.environ['PYTHONHASHSEED'] = '0'
random.seed(12345)
# Also set the tf randomness to some fixed values like this if you need:
tf.set_random_seed(1234)
这对我有用。
答案 1 :(得分:0)
您可以保存
$paged = (get_query_var('paged')) ? absint( get_query_var('paged')) : 1 ;
$ids = get_the_ID();
$args = array('paged' => $paged , 'post__in' => array($ids));
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
while ($the_query->have_posts()) : $the_query->the_post();
$metas = get_post_meta(get_the_ID(),'value_gallery',false);
foreach ($metas as $meta) {
$key_val = explode(",", $meta);
$image_chunk = array_chunk($key_val, 3);
$page = get_query_var('page');
$page = $page > 1 ? $page - 1 : 0 ;
if (isset($key_val[$page])) {
foreach ($image_chunk[$page] as $image) {
echo "<div class='col-lg-4'>".
wp_get_attachment_image($image,"cherry-thumb-a") ."</div>";
}
}
}
endwhile;
the_posts_pagination( array(
'mid_size' => 2,
'prev_text' => __( '<', 'textdomain' ),
'next_text' => __( '>', 'textdomain' ),
) );
wp_reset_postdata();
endif;
并稍后加载
from keras.models import load_model
model.save("lstm_model.h5")
答案 2 :(得分:0)
权重在神经网络中随机初始化,因此有可能通过设计获得不同的结果。如果考虑反向传播的工作原理以及成本函数的最小化,您会发现您无法保证网络会找到“全局最小值”。修复种子是获得可重现结果的一个想法,但是另一方面,您将网络限制在固定的起始位置,在该位置可能永远无法达到全局最小值。
许多复杂的模型,尤其是LSTM都是不稳定的。您可以看一下卷积方法。我注意到,它们的性能几乎相同,并且更加稳定。 https://arxiv.org/pdf/1803.01271.pdf