Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么谷歌Colab要花这么长时间来学习这些简单的神经网络?_Python_Keras_Scikit Learn_Google Colaboratory - Fatal编程技术网

Python 为什么谷歌Colab要花这么长时间来学习这些简单的神经网络?

Python 为什么谷歌Colab要花这么长时间来学习这些简单的神经网络?,python,keras,scikit-learn,google-colaboratory,Python,Keras,Scikit Learn,Google Colaboratory,我试图在google colab上运行以下代码: import numpy as np import seaborn as sns import matplotlib.pyplot as plt from keras import models from keras import layers from keras.datasets import boston_housing from sklearn.model_selection import KFold from sklearn.model

我试图在google colab上运行以下代码:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from keras import models
from keras import layers
from keras.datasets import boston_housing
from sklearn.model_selection import KFold
from sklearn.model_selection import ShuffleSplit
from sklearn.model_selection import GridSearchCV
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.metrics import mean_squared_error

sns.set()

(train_data,train_targets),(test_data,test_targets)=boston_housing.load_data()

mean=np.mean(train_data)
std=np.std(train_data)

train_data_norm=(train_data-mean)/std
test_data_norm=(test_data-mean)/std

def build_model():
    model=models.Sequential()
    model.add(layers.Dense(64,activation="relu",
                          input_shape=(train_data_norm.shape[1],)))
    model.add(layers.Dense(64,activation="relu"))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop',loss="mse",metrics=["mae"])
    return model 


model=KerasRegressor(build_fn=build_model,epochs=30,verbose=0)
param_grid = {"epochs":range(1,11)}

kf1=KFold(n_splits=5, random_state=None, shuffle=False) #n_splits = number of folds
kf2=KFold(n_splits=5, random_state=1, shuffle=True)
ss = ShuffleSplit(n_splits=5,test_size=0.20,random_state=1)

grid_model_KFFalse=GridSearchCV(model,param_grid,cv=kf1,n_jobs=-1,scoring='neg_mean_squared_error')
grid_model_KFTrue=GridSearchCV(model,param_grid,cv=kf2,n_jobs=-1,scoring='neg_mean_squared_error')
grid_model_SS=GridSearchCV(model,param_grid,cv=ss,n_jobs=-1,scoring='neg_mean_squared_error')

listKFFalse=[]
listKFTrue=[]
listSS=[]

for i in range(1,21):
  grid_model_KFFalse.fit(train_data, train_targets)
  grid_model_KFTrue.fit(train_data, train_targets)
  grid_model_SS.fit(train_data, train_targets)
  mseKFFalse=mean_squared_error(grid_model_KFFalse.predict(test_data),test_targets)
  mseKFTrue=mean_squared_error(grid_model_KFTrue.predict(test_data),test_targets)
  mseSS=mean_squared_error(grid_model_SS.predict(test_data),test_targets)
  listKFFalse=np.append(listKFFalse,[mseKFFalse])
  listKFTrue=np.append(listKFTrue,[mseKFTrue])
  listSS=np.append(listSS,[mseSS])
你可以查一下

我已经在我的笔记本电脑上运行了1次,在jupyter笔记本上运行,而不是21次,最慢的部分在“for”块中,但这是意料之中的

代码编译没有错误,因为我已经成功地运行了5个周期/模拟,没有问题

然而,这需要很长时间。。。我不知道为什么会这样。google colab在使用keras学习神经网络时不应该使用GPU(或TPU)吗?我已经将运行时类型更改为GPU或TPU,但仍然非常慢。

来自

似乎太好了,不可能是真的。限制是什么?

Colab资源没有保证,也不是无限的,有时使用限制也是有限的 波动这对于Colab能够提供资源是必要的 免费的。有关详细信息,请参阅

似乎太好了,不可能是真的。限制是什么?

Colab资源没有保证,也不是无限的,有时使用限制也是有限的 波动这对于Colab能够提供资源是必要的 免费的。有关详细信息,请参阅


关于TPU的使用,如果您参考,您将看到一些连接到TPU的代码片段:

tpu = tf.distribute.cluster_resolver.TPUClusterResolver() 
tf.config.experimental_connect_to_cluster(tpu)
tf.tpu.experimental.initialize_tpu_system(tpu)
tpu_strategy = tf.distribute.experimental.TPUStrategy(tpu)

在提供的snippet/colab中,没有使用TPU,这就是为什么您看不到性能上的差异。如果要使用TPU,您需要从基本的
keras
迁移到
tf.keras
,并使用分发策略。

关于TPU的使用,如果您参考,您将看到一些连接到TPU的代码片段:

tpu = tf.distribute.cluster_resolver.TPUClusterResolver() 
tf.config.experimental_connect_to_cluster(tpu)
tf.tpu.experimental.initialize_tpu_system(tpu)
tpu_strategy = tf.distribute.experimental.TPUStrategy(tpu)
在提供的snippet/colab中,没有使用TPU,这就是为什么您看不到性能上的差异。如果要使用TPU,您需要从基本的
keras
迁移到
tf.keras
,并使用分发策略