我想在 keras 中为完全卷积网络的内层添加跳过连接,有一个 keras.layers.Add 选项,还有一个 keras.layers.concatenate 选项。
有什么不同?我应该使用哪一种?
卷积神经网络使用squared_sized核是很常见的,即(3,3)、(5,5)等。
使用非平方内核大小的优缺点是什么?表示 (3,7)、(3,9) 等。
我正在联合训练具有 2 个独立输入路径的 2 个自动编码器,并且我想将其中一个输入路径随机设置为零。
我将 Tensorflow 与 keras 后端(功能 API)一起使用。
我正在计算反向传播的联合损失(两个损失的总和)。
A -> A' & B ->B'
损失 => l2(A,A')+l2(B,B')
采用 A 和 B 的网络在潜在空间中连接。我想将 A 或 B 随机设置为零,并仅在相应路径上计算损耗,这意味着如果输入路径 A 设置为零损耗,则仅使用路径 B 的输出来计算损耗,反之亦然;例如:
0 -> A' & B ->B'
损失:l2(B,B')
如何随机将输入路径设置为零?我如何编写一个回调来执行此操作?
我正在使用 keras 和 tensorflow 训练 CNN。我想在训练期间将高斯噪声添加到我的输入数据中,并在进一步的步骤中降低噪声的百分比。我现在做什么,我使用:
from tensorflow.python.keras.layers import Input, GaussianNoise, BatchNormalization
inputs = Input(shape=x_train_n.shape[1:])
bn0 = BatchNormalization(axis=1, scale=True)(inputs)
g0 = GaussianNoise(0.5)(bn0)
Run Code Online (Sandbox Code Playgroud)
GaussianNoise 采用的变量是噪声分布的标准偏差,我无法为其分配动态值,如何添加例如噪声,然后根据我所处的时代减少该值?
我想将大小为 [192,4000] 的数组缩放到特定范围。我希望将每一行(1:192)重新调整到特定范围,例如(-840,840)。我运行一个非常简单的代码:
import numpy as np
from sklearn import preprocessing as sp
sample_mat = np.random.randint(-840,840, size=(192, 4000))
scaler = sp.MinMaxScaler(feature_range=(-840,840))
scaler = scaler.fit(sample_mat)
scaled_mat= scaler.transform(sample_mat)
Run Code Online (Sandbox Code Playgroud)
即使原始矩阵的最大值和最小值完全相同,这也会弄乱我的矩阵范围。我不知道出了什么问题,有什么想法吗?
我将tensorflow 1.14.1与keras功能API一起使用,我需要在网络解码器部分的末尾进行插值。运行以下代码后出现错误:
conv_layer = Conv2D(32, (3, 3), padding='same', data_format='channels_first')(bn_pre)
act_layer = LeakyReLU()(conv_layer)
prm_layer = Permute((2, 3, 1))(act_layer)
ld1_layer = Lambda(lambda x: tf.image.resize(x, [384, 384]))(prm_layer)
prm2_layer = Permute((3, 1, 2))(ld1_layer)
bn12_layer = BatchNormalization(axis=1, scale=False)(prm2_layer)
Run Code Online (Sandbox Code Playgroud)
错误是:
W0116 17:40:42.326339 139793502861056 ops.py:465] Tensor._shape is private, use Tensor.shape instead.
Tensor._shape will eventually be removed.
W0116 17:40:42.330794 139793502861056 ops.py:465] Tensor._shape is private, use Tensor.shape instead.
Tensor._shape will eventually be removed.
Run Code Online (Sandbox Code Playgroud)
在哪里调用tensor._shape?我应该关心这个警告吗?以及如何修复它?
我有一个大小为 (192,192,4000) 的 numpy 数组,我想以快速的方式将其写入磁盘。我不在乎格式,我可以稍后转换它。
我现在写的是我将它保存为需要很长时间的 csv 格式:
for i in range(0,192):
np.savetxt(foder+"/{}_{}.csv".format(filename,i), data[i] , "%i", delimiter=", ")
Run Code Online (Sandbox Code Playgroud)
这需要 20-25 秒。我已经尝试过在 stackoverflow 问题中找到的 Pandas DataFrame 和 Panel 方法并保存 numpy。所有这些似乎都没有错误地运行,但是当我打开它时文件夹是空的。
知道如何提高速度吗?
为什么代码运行没有错误但没有保存任何内容,例如 numpy.save?!