GPU云服务器+tensorboard
流程如下:
python test.py(完整代碼在附錄,數據集會由代碼自動下載,不用擔心)
運行后會自動生成model文件夾
#--------------------------------------------------
tensorboard --logdir=./model
得到:
http://ubuntu19:6007/
#--------------------------------------------------
內網穿透來模仿云端服務器的環境:
./ngrok http 6007
這里的端口要與tensorboard給的端口一致。
#--------------------------------------------------
瀏覽器打開
http://5ec1c84d.ngrok.io/(這個鏈接來自上方ngrok給的鏈接)
即可.
最后結果如下:
#--------------------------------------------------------------------------------------------------
補充說下像深腦鏈的GPU服務器是不行的,因為它除了提供連接用的端口以外,
沒有其他端口供tensorboard顯示使用,因此是無法在瀏覽器遠程訪問tensorboard的。
#---------------------------------------------------------附錄---------------------------------------------------------------------------------------
test.py
? import numpy as npfrom keras.models import Sequential # 采用貫序模型 from keras.layers import Input, Dense, Dropout, Activation,Conv2D,MaxPool2D,Flatten from keras.optimizers import SGD from keras.datasets import mnist from keras.utils import to_categorical from keras.callbacks import TensorBoarddef create_model():model = Sequential()model.add(Conv2D(32, (5,5), activation='relu', input_shape=[28, 28, 1])) #第一卷積層model.add(Conv2D(64, (5,5), activation='relu')) #第二卷積層model.add(MaxPool2D(pool_size=(2,2))) #池化層model.add(Flatten()) #平鋪層model.add(Dropout(0.5))model.add(Dense(128, activation='relu'))model.add(Dropout(0.5))model.add(Dense(10, activation='softmax'))return modeldef compile_model(model):#sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) # 優化函數,設定學習率(lr)等參數 model.compile(loss='categorical_crossentropy', optimizer="adam",metrics=['acc']) return modeldef train_model(model,x_train,y_train,batch_size=128,epochs=10):#構造一個tensorboard類的對象#tbCallBack = TensorBoard(log_dir="./model", histogram_freq=1, write_graph=True, write_images=True,update_freq="epoch")tbCallBack = TensorBoard(log_dir="./model", histogram_freq=1,write_grads=True)history=model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, shuffle=True, verbose=2, validation_split=0.2,callbacks=[tbCallBack])return history,modelif __name__=="__main__":(x_train,y_train),(x_test,y_test) = mnist.load_data() #mnist的數據我自己已經下載好了的print(np.shape(x_train),np.shape(y_train),np.shape(x_test),np.shape(y_test))x_train=np.expand_dims(x_train,axis=3)x_test=np.expand_dims(x_test,axis=3)y_train=to_categorical(y_train,num_classes=10)y_test=to_categorical(y_test,num_classes=10)print(np.shape(x_train),np.shape(y_train),np.shape(x_test),np.shape(y_test))model=create_model()model=compile_model(model)history,model=train_model(model,x_train,y_train)?符號意義列表
注意事項:
出現顯存占滿、而GPU利用率為0的情況,經查閱官方文檔得知“在GPU上,tf.Variable操作只支持實數型(float16 float32 double)的參數。不支持整數型參數”
通過allow_soft_placement參數自動將無法把GPU上的操作放回CPU上
?
總結
以上是生活随笔為你收集整理的GPU云服务器+tensorboard的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦幻西游109转门派需要多少个潜能果
- 下一篇: 什么是1st tier conferen