小编Mar*_*jko的帖子

keras.fit()重新初始化权重

我有一个训练有素的模型,该模型model.fit()用于model.save()将其保存在物理文件中。现在,我有另一个数据集,我想在该数据集上继续使用保存的模型进行训练。但是,我发现每次fit()通话都被认为是全新的培训。这意味着,它正在重新初始化之前生成并保存的权重。

当我fit()以纪元0进行调用时,我看不到权重重置问题。但是,我绝对想尝试> 0。

我在这里错过了什么吗,还是Keras的问题。

Keras版本:2.0.3

谢谢。

machine-learning neural-network deep-learning keras tensorflow

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

低损耗和非常非常低的准确度

我正在训练一个深度学习模型,但准确率很低,但损失也很低,这两者成反比。导致这种非常低的准确度的原因是什么,我该如何阻止它?

该模型应检测视频场景中的异常事件

我用来构建模型的研究论文的链接

https://arxiv.org/abs/1604.04574

在此处输入图片说明

模型架构 在此处输入图片说明

这是我的代码:

model = Sequential()

model.add(TimeDistributed(Convolution2D(512, 11, 11 ,activation='relu'  ,  border_mode='valid', subsample = (4,4))
                      , input_shape=(10,231, 231, 1)))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid')))
model.add(TimeDistributed(Convolution2D(256,5, 5,activation='relu'  , border_mode='same')))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid')))
model.add(TimeDistributed(Convolution2D(128,3,3,activation='relu'  , border_mode='same'))),
model.add(TimeDistributed(Conv2DTranspose(128, 3,3,border_mode='same')))
model.add(TimeDistributed(UpSampling2D(size=(2, 2, ))))
model.add(TimeDistributed(Conv2DTranspose(256, 3,3,border_mode='same')))
model.add(TimeDistributed(UpSampling2D(size=(2, 2, ))))
model.add(TimeDistributed(Conv2DTranspose(512,5,5,border_mode='same')))
model.add(TimeDistributed(Conv2DTranspose(1, kernel_size=(11,11),strides=(4,4))))
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning keras

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

确定Keras模型拟合的时期数

我正在尝试自动确定Keras自动编码器何时收敛。例如,在“让我们构建尽可能简单的自动编码器”下查看此链接。时期数被硬编码为50(损失值收敛时)。但是,如果您不知道数字为50,您将如何使用Keras对此进行编码?您可以继续打电话fit()吗?

machine-learning neural-network autoencoder deep-learning keras

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

Keras - 自定义损失功能 - 倒角距离

我正在尝试使用自定义损失函数进行对象分割,如下所示:

def chamfer_loss_value(y_true, y_pred):           

    # flatten the batch 
    y_true_f = K.batch_flatten(y_true)
    y_pred_f = K.batch_flatten(y_pred)

    # ==========
    # get chamfer distance sum

    // error here
    y_pred_mask_f = K.cast(K.greater_equal(y_pred_f,0.5), dtype='float32')

    finalChamferDistanceSum = K.sum(y_pred_mask_f * y_true_f, axis=1, keepdims=True)  

    return K.mean(finalChamferDistanceSum)

def chamfer_loss(y_true, y_pred):   
    return chamfer_loss_value(y_true, y_pred)
Run Code Online (Sandbox Code Playgroud)

y_pred_f是我的U-net的结果.y_true_f是地面真实标签掩码上的欧氏距离变换的结果,x如下所示:

distTrans = ndimage.distance_transform_edt(1 - x)
Run Code Online (Sandbox Code Playgroud)

为了计算距离倒角,则相乘的预测图像(理想地,与1和0掩模)与地面实况距离变换,并简单地总结在所有像素.要做到这一点,我需要y_pred_mask_f通过阈值处理获得一个掩码y_pred_f,然后乘以y_true_f,并对所有像素求和.

y_pred_f在[0,1]中提供连续的值范围,我None type not supported在评估时得到误差y_true_mask_f.我知道损失函数必须是可微,且greater_equalcast都没有.但是,在克拉斯有没有办法规避这个?也许在Tensorflow中使用一些解决方法?

machine-learning neural-network deep-learning keras tensorflow

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

Keras Functional API更改每个API中的图层名称

当我在模型中运行功能性API进行k折交叉验证时,在每次折叠的返回拟合模型中,命名密集层的数字都会增加。就像在第一折中一样dense_2_acc,然后在第二折中dense_5_acc

通过我的模型摘要显示我的模型是正确的。为什么要更改history每个折叠的拟合模型对象中的名称?

在此处输入图片说明

python model neural-network keras keras-layer

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

使用keras示例pretrained_word_embeddings时出错

我正在尝试修改此处可用的keras示例pretrained_word_embeddings,我遇到了以下问题:如果我将MAX_SEQUENCE_LENGTHvaribae 减少为例如95值,则会出现以下错误:

回溯(最近一次调用最后一次):文件"C:\ Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\common_shapes.py",第670行,_call_cpp_shape_fn_impl状态)文件"C:\ Program Files\Anaconda3\lib\contextlib.py",第66行,在exit next(self.gen)文件"C:\ Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py",第469行, in raise_exception_on_not_ok_status pywrap_tensorflow.TF_GetCode(status))tensorflow.python.framework.errors_impl.InvalidArgumentError:通过输入形状为'Conv2D_2'(op:'Conv2D')从2减去5引起的负维度大小:[?,2,1,128] ,[5,1,128,128].

我需要更改它以防万一我需要使用像推文这样的小消息.我使用Tensorflow后端.

请帮我澄清1)有什么问题MAX_SEQUENCE_LENGTH?2)Conv2D_2跟踪的原因是什么,而不是我Conv1D在模型中使用的原因.

machine-learning neural-network conv-neural-network keras tensorflow

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

Keras/Tensorflow:奇怪的辍学行为

我想知道dropout是如何工作的,所以我进入了layers.core模块并将dropout调用从in_train_phase更改为in_test_phase.

我不确定我的更改是否对狡猾的辍学行为负责,所以请耐心等待.

现在将这些更改记在下面的代码片段中:

from keras.models import Model
from keras.layers import Dropout, Input
import numpy as np
import tensorflow as tf
from keras import initializers

x=np.ones((2,2,4))
# x[:,1,:] = 1

print(x)

from keras.layers import Dense

input = Input(name='atom_inputs', shape=(2, 4))

x1 = Dense(4, activation='linear',
           kernel_initializer=initializers.Ones(),
           bias_initializer='zeros')(input)
x1 = Dropout(0.5, noise_shape=(tf.shape(input)[0], 1, 4))(x1)


fmodel = Model(input, x1)
fmodel.compile(optimizer='sgd', loss='mse')
print(fmodel.predict(x))
Run Code Online (Sandbox Code Playgroud)

将根据辍学率产生不同的预测.

例如:

Dropout(0.2)
[[[5. 5. 5. 5.]
  [5. 5. 5. 5.]]

 [[5. 0. 5. 0.]
  [5. 0. 5. 0.]]]

Dropout(0.5)
[[[0. 0. …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras tensorflow

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

如何为类型参数设置 python 类型

我想为作为参数传递的 Python 类型正确添加类型。例如,假设我们想向以下函数添加类型:

def do_something_based_on_types(
    ...
    type_name: str,
    str_to_type_mapping: Dict[str, Any], # what instead of Any?
):
    ...
    object = str_to_type_mapping[type_name]()
    ...
Run Code Online (Sandbox Code Playgroud)

我们希望传递一个映射到str类型,基于该映射我们希望构造选定类的对象。对于这种情况,正确的类型是什么(而不是Any在代码示例中使用)。

python typing dynamic-typing

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

如何在CNTK中实现序列分类LSTM网络?

我正致力于LSTM神经网络的实施,用于序列分类.我想用以下参数设计一个网络:

  1. 输入:一个n热矢量序列.
  2. 网络拓扑:双层LSTM网络.
  3. 输出:给定序列属于类的概率(二进制分类).我想只考虑第二个LSTM层的最后一个输出.

我需要在CNTK中实现它,但我很难,因为它的文档编写得不是很好.有人可以帮助我吗?

machine-learning neural-network lstm recurrent-neural-network cntk

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

解释深度神经网络的训练轨迹:非常低的训练损失和甚至更低的验证损失

我对以下日志有点怀疑,我在训练深度神经网络时得到-1.0和1.0之间的回归目标值,学习率为0.001和19200/4800训练/验证样本:

____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to
====================================================================================================
cropping2d_1 (Cropping2D)        (None, 138, 320, 3)   0           cropping2d_input_1[0][0]
____________________________________________________________________________________________________
lambda_1 (Lambda)                (None, 66, 200, 3)    0           cropping2d_1[0][0]
____________________________________________________________________________________________________
lambda_2 (Lambda)                (None, 66, 200, 3)    0           lambda_1[0][0]
____________________________________________________________________________________________________
convolution2d_1 (Convolution2D)  (None, 31, 98, 24)    1824        lambda_2[0][0]
____________________________________________________________________________________________________
spatialdropout2d_1 (SpatialDropo (None, 31, 98, 24)    0           convolution2d_1[0][0]
____________________________________________________________________________________________________
convolution2d_2 (Convolution2D)  (None, 14, 47, 36)    21636       spatialdropout2d_1[0][0]
____________________________________________________________________________________________________
spatialdropout2d_2 (SpatialDropo (None, 14, 47, 36)    0           convolution2d_2[0][0]
____________________________________________________________________________________________________
convolution2d_3 (Convolution2D)  (None, 5, 22, 48) …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning keras

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

最佳神经网络优化算法

我正在寻找神经网络优化中的4种最佳算法。我需要名称和任何描述,学习方法和拓扑结构对我很有帮助。我认为多层感知器(MLP)是其中之一,但我不确定。

谢谢你们。

optimization machine-learning neural-network deep-learning

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