小编use*_*121的帖子

如何在Keras下载和跳过与CNN无对应的VGG权重?

我想跟着卷积神经网络(CNN)的方式在这里.但是,github中的这段代码使用的是Pytorch,而我使用的是Keras.

我想重现方框6,7和8,其中下载了来自ImageNet上的VGG-16的预训练权重,并用于使CNN更快地收敛.

特别地,存在一部分(框8),其中从VGG-16下载并跳过权重SegNet(CNN模型中没有对应部分).在我的工作中,我使用的是CNN模型U-Net而不是Segnet.U-Net我正在使用的Keras代码可以在这里找到.

我是Keras的新手,我很欣赏Keras代码中有关如何下载和跳​​过与我的U-Net模型没有对应关系的VGG权重的任何见解.

python machine-learning deep-learning keras pytorch

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

Keras 的训练准确率是如何确定每个 epoch 的?

我在 Keras 中训练模型如下:

model.fit(Xtrn, ytrn batch_size=16, epochs=50, verbose=1, shuffle=True,
          callbacks=[model_checkpoint], validation_data=(Xval, yval))
Run Code Online (Sandbox Code Playgroud)

拟合输出如下所示:

在此处输入图片说明

如图所示,model.fit我的批量大小为 16,8000训练样本总数如输出所示。因此,根据我的理解,每16批次都会进行培训。这也意味着训练是500单个时期的运行时间(即,8000/16 =500)

因此,让我们采用 Epoch 1/50 输出中打印的训练准确度,在本例中为0.9381。我想知道这个训练精度是如何0.9381导出的。

是不是:

  1. 平均训练精度,作为平均从500次培训,每批执行?

或者,

  1. 它是运行训练过程的实例中的最佳(或最大)训练准确度500吗?

machine-learning deep-learning keras

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

如何直接将.npy文件写入s3?

我想知道是否有任何方法可以将数组作为numpy文件(.npy)直接写入AWS S3存储桶。我可以np.save用来将文件保存在本地,如下所示。但是我正在寻找一种解决方案,可以将其直接写入S3,而无需先保存在本地。

a = np.array([1, 2, 3, 4])
np.save('/my/localfolder/test1.npy', a)
Run Code Online (Sandbox Code Playgroud)

python numpy amazon-s3

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

为什么在应用数据增强时验证准确度高于训练准确度?

我正在处理 Keras 中的图像分类问题。

我正在训练model.fit_generator用于数据增强的模型。在每个时期训练的同时,我也在评估验证数据。

训练在 90% 的数据上完成,验证在 10% 的数据上完成。以下是我的代码:

datagen = ImageDataGenerator(
    rotation_range=20,
    zoom_range=0.3)


batch_size=32
epochs=30

model_checkpoint = ModelCheckpoint('myweights.hdf5', monitor='val_acc', verbose=1, save_best_only=True, mode='max')

lr = 0.01
sgd = SGD(lr=lr, decay=1e-6, momentum=0.9, nesterov=False)
model.compile(loss='categorical_crossentropy',
          optimizer=sgd,
          metrics=['accuracy'])



def step_decay(epoch):
    # initialize the base initial learning rate, drop factor, and
    # epochs to drop every
    initAlpha = 0.01
    factor = 1
    dropEvery = 3

    # compute learning rate for the current epoch
    alpha = initAlpha * (factor ** np.floor((1 + epoch) …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning keras

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

CNN模型中的内核权重初始化在哪里?

我正在使用make_unet这里调用的卷积神经网络(CNN)。它可以工作,并且代码可以与此CNN一起运行。但是我知道在深度学习中,您必须初始化权重以优化神经网络。

Keras中的文档明确指出了kernel_initializer权重初始化的使用。但是,我kernel_initializer在使用的make_unet功能中看不到任何东西。

任何能够提供一些见识的人将不胜感激。

python machine-learning deep-learning conv-neural-network keras

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

Keras 如何计算多类分类问题的验证准确率和训练准确率?

我想知道 Keras 如何计算多类分类问题的验证和训练精度(即使用的函数)。我设置我的模型编译如下:

model.compile(optimizer=Adam(lr=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

但我试图了解验证准确度和训练准确度是如何计算的(即,显式公式)。

我知道验证和训练损失由 决定categorical_crossentropy,但我不确定准确性。

注意:这不是这篇文章的副本。我的问题是寻找对 Keras 用于计算准确性的 Python 函数的解释,而不是上述帖子中给出的理论细节。

python machine-learning deep-learning keras

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

如何在Python中只添加数组的对角线?

我在Python上有一个数组,如下所示:

array([[ 0.57733218,  0.09794384,  0.44497735],
       [ 0.87061284,  0.10253493,  0.56643557],
       [ 0.76358739,  0.44902046,  0.86064797]])
Run Code Online (Sandbox Code Playgroud)

我想在数组的对角线上添加标量值20,以便输出为:

array([[ 20.57733218,  0.09794384,  0.44497735],
       [ 0.87061284,  20.10253493,  0.56643557],
       [ 0.76358739,  0.44902046,  20.86064797]])
Run Code Online (Sandbox Code Playgroud)

由于我也可能正在处理非常大的矩阵数组,通过分配操作进行这种对角线加法的最有效方法是什么,如该线程的公认解决方案中所建议的那样?

python numpy scipy

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

除了一个特定值之外,如何将numpy数组中的所有值替换为零?

我有一个2D numpy数组,其中包含'n'个唯一值.我想生成一个二进制矩阵,其中所有值都替换为"零",并且我指定的值被指定为"一".

例如,我有一个如下数组,我想要为35的所有实例分配'one':

array([[12, 35, 12, 26],
       [35, 35, 12, 26]])
Run Code Online (Sandbox Code Playgroud)

我想获得以下输出:

array([[0, 1, 0, 0],
       [1, 1, 0, 0]])
Run Code Online (Sandbox Code Playgroud)

在Python中最有效的方法是什么?

python numpy matrix multidimensional-array

3
推荐指数
2
解决办法
2354
查看次数

如何将此列表转换为R中具有相同名称的数据帧?

我在R中有以下数据:

list0 <- list(ff = 45,gg = 23)
list1 <- list(a = 2, b=list0)
LIST <- list(mylist = list1)
Run Code Online (Sandbox Code Playgroud)

我想将此列表转换为数据帧并获取如下输出数据帧,其具有以下列标题命名约定:

  a b.ff b.gg
1 2   45   23
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

r dataframe

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

如何将每列乘以R中的每个标量?

我有以下变量 Q

a = c(1,2,3,4)
b = c(45,4,3,2)
c = c(34,23,12,45)
Q = cbind(a,b,c)
Run Code Online (Sandbox Code Playgroud)

我还有另一个变量 r

r = c(10,20,30)
Run Code Online (Sandbox Code Playgroud)

我想将每个列乘以每个Q相应的值r(例如,第一列Q乘以第一个值r,第二列Q乘以第二个值r,依此类推).

特别是对于这个例子,我正在寻找的输出是:

      10   900   1020
      20    80    690
      30    60    360
      40    40   1350
Run Code Online (Sandbox Code Playgroud)

我是R的新手,正在寻找最佳的方法.

r

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

如何基于的过滤行

我在pandas中有一个数据框,其中一列(即列'b')包含带符号的字符串:

import numpy as np 
import pandas as pd 

df = pd.DataFrame({'a': [51, 2,32,99,81], 'b': ['$3', '$4','$-','$0','$23']})
Run Code Online (Sandbox Code Playgroud)

我想过滤数据帧,这样我只保留列'b'只返回零以外的整数的行,并丢弃$符号.

我想要的输出是:

在此输入图像描述

欢迎任何反馈.

python pandas

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

为什么赋值操作仍然为Python中的大型数组提供MemoryError?

我有一个大阵列K(29000 x 29000):

K= numpy.random.random((29000, 29000))
Run Code Online (Sandbox Code Playgroud)

我想在K上应用以下操作:

output = K* (1.5 - 0.5 * K* K)
Run Code Online (Sandbox Code Playgroud)

为了尝试阻止' MemoryError',我按照这个帖子的回答建议进行计算.

但是,当我尝试按如下方式对大型数组进行赋值操作时,我仍然得到MemoryError:

K *= 1.5 - 0.5 * K * K
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助.

注意:这不是重复的帖子.这篇文章有一个使用cython 的建议.但我正在寻找可能不依赖于Cython的替代解决方案.

python numpy

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