读完这个主题后,我并不完全理解:神经网络中的“卷积”是否可以与简单的下采样或“锐化”功能相媲美?
你能把这个词分解成一个简单易懂的形象/类比吗?
编辑:在第一个答案之后改写:池化可以理解为权重矩阵的下采样吗?
machine-learning convolution neural-network deep-learning conv-neural-network
我在短时间内使用 Tensorflow。这是我的问题:我加载 AlexNet 权重以对其进行微调,所以我给出了 50 的批次。所以我定义了:
# Graph input
x = tf.placeholder(tf.float32, [50, 227, 227, 3])
y = tf.placeholder(tf.float32, [None, 40])
Run Code Online (Sandbox Code Playgroud)
我给出了一批 50 张图像,并希望获得 40 个输出类。
然后我定义了我的模型
class Model:
@staticmethod
def alexnet(_X, _dropout):
# Layer 1 (conv-relu-pool-lrn)
conv1 = conv(_X, 11, 11, 96, 4, 4, padding='VALID', name='conv1')
conv1 = max_pool(conv1, 3, 3, 2, 2, padding='VALID', name='pool1')
norm1 = lrn(conv1, 2, 2e-05, 0.75, name='norm1')
# Layer 2 (conv-relu-pool-lrn)
conv2 = conv(norm1, 5, 5, 256, 1, 1, group=2, name='conv2')
conv2 = max_pool(conv2, …Run Code Online (Sandbox Code Playgroud) 我想从 Tensorflow 对象检测 API 训练一个 ssd-inception-v2 模型。我想使用的训练数据集是一堆不同大小的裁剪图像,没有边界框,因为裁剪本身就是边界框。
我按照 create_pascal_tf_record.py 示例相应地替换了边界框和分类部分以生成 TFRecords,如下所示:
def dict_to_tf_example(imagepath, label):
image = Image.open(imagepath)
if image.format != 'JPEG':
print("Skipping file: " + imagepath)
return
img = np.array(image)
with tf.gfile.GFile(imagepath, 'rb') as fid:
encoded_jpg = fid.read()
# The reason to store image sizes was demonstrated
# in the previous example -- we have to know sizes
# of images to later read raw serialized string,
# convert to 1d array and convert to respective
# shape that image …Run Code Online (Sandbox Code Playgroud) image-processing computer-vision deep-learning conv-neural-network tensorflow
我在 Python 中的 Keras 代码如下所示:
training_set = train_datagen.flow_from_directory('dataset/training_set',
target_size=(64, 64),
batch_size=32,
class_mode='binary')
Run Code Online (Sandbox Code Playgroud)
我不断收到此错误:
[WinError 3] 系统找不到指定的路径:'dataset/training_set'
我已经以各种方式确认这条路径是正确的,但它仍然会引发错误。请帮忙。
我是 MXNet 的新手,我想知道是否有人知道如何微调 CNN 中的更多层,而不仅仅是 FC 层。我看到的所有示例都只在 FC 层上进行了微调。在 Keras 中,这可以轻松完成,并且可以微调除 FC 块以外的更多 ConvNet 块:https : //github.com/Hvass-Labs/TensorFlow-Tutorials/blob/master/10_Fine-Tuning.ipynb
如果我们只想微调 FC 块,我们将所有层的可训练性设置为 false: layer.trainable = False
如果我们想要微调除 FC 层以外的更多 ConnNet 块,我们将这些层的 layer.trainable=True 设置为: 在 Keras 中微调 ConvNet 块
我的问题是如何在 MXNet 中做类似的事情
我见过使用内核和权重的 CNN 代码内核和权重有什么区别?
python machine-learning deep-learning conv-neural-network tensorflow
我需要用权重初始化自定义 Conv2D 内核
W = a1b1 + a2b2 + ... + anbn
其中 W = 要初始化的 Conv2D 层的自定义权重
a = 随机权重张量 as keras.backend.variable(np.random.uniform()), shape=(64, 1, 10)
b = 固定基础滤波器定义为keras.backend.constant(...), shape=(10, 11, 11)
W = K.sum(a[:, :, :, None, None] * b[None, None, :, :, :], axis=2) #shape=(64, 1, 11, 11)
我希望我的模型更新“W”值,只更改“a”,同时保持“b”不变。
我通过自定义 'W' 作为
Conv2D(64, kernel_size=(11, 11), activation='relu', kernel_initializer=kernel_init_L1)(img)
其中kernel_init_L1收益keras.backend.variable(K.reshape(w_L1, (11, 11, 1, 64)))
Problem:
我不确定这是否是正确的方法。是否可以在 Keras 中指定哪些是trainable哪些不是。我知道可以设置图层, trainable = True但我不确定权重。 …
我正在尝试在我的 CNN 模型上应用转移学习,但出现以下错误。
model = model1(weights = "model1_weights", include_top=False)
Run Code Online (Sandbox Code Playgroud)
----
TypeError: __call__() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
谢谢
我对图像处理知识不多。我正在尝试实现一个ConvNet。我下载了一些图像作为数据集,并使其高度和宽度相等。然后我尝试通过以下代码将它们加载到np.array中:
train_list = glob.glob('A:\Code\Machine
Learning\CNN\ConvolutionalNN1\TrainImg\*.jpg')
X_train_orig = np.array([np.array(Image.open(file)) for file in train_list])
Run Code Online (Sandbox Code Playgroud)
但这给了我无法广播(420,310)到(420,310,3)的错误。然后我打印了数组的形状,其中一些是(420,310,3),其他是(410,320,4)。为什么会这样呢?以及如何更改它以使其适合数组?
我正在尝试将 LSTM 与 CNN 结合使用,但由于错误而卡住了。这是我试图实现的模型:
model=Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(28, 28,3), activation='relu'))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(32, activation='relu'))
model.add(LSTM(128, return_sequences=True,input_shape=(1,32), activation='relu'))
model.add(LSTM(256))
model.add(Dropout(0.25))
model.add(Dense(37))
model.compile(loss='categorical_crossentropy', optimizer='adam')
Run Code Online (Sandbox Code Playgroud)
错误发生在第一个 LSTM 层:
ERROR: Input 0 is incompatible with layer lstm_12: expected ndim=3, found ndim=2
Run Code Online (Sandbox Code Playgroud) python ×5
keras ×4
tensorflow ×3
convolution ×1
input ×1
lstm ×1
mxnet ×1
python-3.x ×1
spyder ×1