我试图在我的Jupyter笔记本上的GPU p2.xlarge实例上的GPU而不是CPU上训练我的模型.我正在使用tensorflow-gpu后端(仅tensorflow-gpu安装和提及requirements.txt而不是tensorflow).
与使用CPU相比,在这些实例上训练模型时,我没有看到任何速度提升,事实上我得到的每个时期的训练速度几乎与我在4核笔记本电脑CPU上获得的相同(p2.xlarge也有4个vCPU)搭配特斯拉K80 GPU).我不确定是否需要对我的代码进行一些更改以适应GPU可以提供的更快/并行处理.我粘贴到我的模型的代码下面:
model = Sequential()
model.add(recurrent.LSTM(64, input_shape=(X_np.shape[1], X_np.shape[2]),
return_sequences=True))
model.add(recurrent.LSTM(64, return_sequences = False))
model.add(core.Dropout(0.1))
model.add(core.Dense(3, activation='softmax'))
model.compile(loss = 'categorical_crossentropy', optimizer = 'rmsprop', metrics=['accuracy'])
model.fit(X_np, y_np, epochs=100, validation_split=0.25)
Run Code Online (Sandbox Code Playgroud)
同样有趣的是,每次使用GPU检查GPU状态时,GPU似乎都在利用其处理能力的50%-60%和几乎所有内存nvidia-smi(但在未经过培训时,它们分别降至0%和1MiB):
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.81 Driver Version: 384.81 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 On | 00000000:00:1E.0 Off | 0 …Run Code Online (Sandbox Code Playgroud) 我在尝试创建NSPredicate对象时遇到异常,如下所示:
let searchPredicate = NSPredicate(format: "addonCategoryId IN \(idsArray)")
Run Code Online (Sandbox Code Playgroud)
其中idsArray由Intswift数组中的对象组成.这条线本身就有例外.控制台说:
2015-10-08 08:21:42.878 bkApp [2569:510538]***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'无法解析格式字符串"addonCategoryId IN [5404,5406]"'
可能是什么问题?谢谢参观.:)
在主要的objective-c 应用程序中使用swift 代码的所有教程都经历了这个Apple 文档中提到的这个过程https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
但是这种导入xyzProjectName-swift.h文件然后使用的方法
MySwiftClass *swiftObject = [[MySwiftClass alloc] init];
[swiftObject swiftMethod];
Run Code Online (Sandbox Code Playgroud)
要求我创建该 swift 类的一个实例。是否可以直接访问类本身[MySwiftClass swiftMethod];
直到现在,我才能够做到这一点。我是否必须以某种方式更改我的 swift 代码才能实现这一目标?