我想将 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
对于 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) 我想获得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
您的会话因未知原因崩溃
当我在 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 中删除了数据集,但会话仍然崩溃。
我用较小的数据集训练了以下 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 …