小编Cod*_*Now的帖子

如何在 Google Colab 中将 jupyter notebook 的功能导入另一个 jupyter notebook

我想将 Jupyter 笔记本(以 .ipynb 结尾)的功能导入另一个 Jupyter 笔记本。

两个笔记本都位于 Google Drive 的同一个文件中。应导入其他笔记本功能的笔记本已在 Google Colab 中打开。

因此我正在寻找一个像

from  xxx.ipynb  import functionX
Run Code Online (Sandbox Code Playgroud)

我已经安装了 PyDrive 包装器并验证并创建了 PyDrive 客户端,如下所示:

!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
Run Code Online (Sandbox Code Playgroud)

import google-drive-api jupyter-notebook google-colaboratory

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

SpatialDropout2D、BatchNormalization 和激活函数的正确顺序?

对于 CNN 架构,我想使用 SpatialDropout2D 层而不是 Dropout 层。另外我想使用 BatchNormalization。到目前为止,我总是直接在卷积层之后但在激活函数之前设置 BatchNormalization,就像 Ioffe 和 Szegedy 的论文中提到的那样。我总是在 MaxPooling2D 层之后设置 dropout 层。

https://machinelearningmastery.com/how-to-reduce-overfit-with-dropout-regularization-in-keras/ 中, SpatialDropout2D 直接设置在卷积层之后。

我发现我现在应该以何种顺序应用这些层相当令人困惑。我还在 Keras 页面上读到 SpatialDropout 应该直接放在 ConvLayer 后面(但我再也找不到这个页面了)。

以下顺序是否正确?

ConvLayer - SpatialDropout - BatchNormalization - 激活函数 - MaxPooling

我真的希望得到提示并提前谢谢你

更新 我的目标实际上是在以下 CNN 架构 dropout 中交换空间 dropout:

model = Sequential()
model.add(Conv2D(32,(3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(32,(3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2))
model.add(Dropout(0.2))

model.add(Conv2D(64, (3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(64,(3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2))
model.add(Dropout(0.2))

model.add(Flatten())
model.add(Dense(512))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.4))
model.add(Dense(10))
model.add(Activation('softmax'))
Run Code Online (Sandbox Code Playgroud)

keras activation-function batch-normalization dropout

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

为什么我的结果仍然无法重现?

我想获得CNN的可重复结果。我将Keras和Google Colab与GPU配合使用。

除了建议插入某些代码段(该代码段应具有可重复性)的建议之外,我还向各层添加了种子。

###### This is the first code snipped to run #####

!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# Authenticate and create the PyDrive client.
# This only needs to be done once per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
Run Code Online (Sandbox Code Playgroud)
###### This is the second code snipped to run #####

from __future__ import print_function  
import numpy as np 

import …
Run Code Online (Sandbox Code Playgroud)

reproducible-research conv-neural-network keras tensorflow google-colaboratory

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

Google Colab - 您的会话因未知原因崩溃

您的会话因未知原因崩溃

当我在 Google Colab 中运行以下单元格时:

from keras import backend as K
if 'tensorflow' == K.backend():
  import tensorflow as tf
  from keras.backend.tensorflow_backend import set_session
  config = tf.ConfigProto()
  config.gpu_options.allow_growth = True
  config.gpu_options.visible_device_list = "0"
  set_session(tf.Session(config=config))
Run Code Online (Sandbox Code Playgroud)

我收到此消息是因为我已将两个数据集上传到谷歌驱动器。

有谁知道这条消息并可以给我一些建议吗?非常感谢您的每一个提示。

更新: 在此输入图像描述我总是收到消息

更新 我已从 Google Drive 中删除了数据集,但会话仍然崩溃。

keras tensorflow google-colaboratory

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

MaxPooling 是否减少过拟合?

我用较小的数据集训练了以下 CNN 模型,因此它确实过拟合:

model = Sequential()
model.add(Conv2D(32, kernel_size=(3,3), input_shape=(28,28,1), padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))

model.add(Conv2D(32, kernel_size=(3,3), padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.4))

model.add(Flatten())
model.add(Dense(512))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
model.compile(loss="categorical_crossentropy", optimizer=Adam(), metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

该模型有很多可训练的参数(超过 300 万个,这就是为什么我想知道我是否应该像下面这样使用额外的 MaxPooling 来减少参数的数量?

Conv - BN - Act - MaxPooling - Conv - BN - Act - MaxPooling - Dropout - Flatten

或者有一个额外的 MaxPooling 和 Dropout,如下所示?

Conv - BN - Act - MaxPooling - Dropout - Conv - BN - Act - MaxPooling - Dropout - Flatten

我试图了解 MaxPooling …

conv-neural-network max-pooling batch-normalization dropout

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