python算法怎么用gpu加速_如何使用GPU加速计算特斯拉斯

这些天,我没能用GPU来启动我的新程序。

我的GPU是nvidia1080ti,我以前用GPU加速了我的程序。(由于GPU util达到了60%以上,而且时间比使用CPU要短得多)。所以我觉得我的环境设置没有问题。在

与我以前使用GPU的程序相比,在新的程序中,我定义了一个具有许多张量流操作的复杂损失函数。由于网络模型是相似的,我认为复杂的损失会导致时间的增加。在

我的代码如下:import numpy as np

import os

from keras.callbacks import ModelCheckpoint, EarlyStopping

from keras import backend as K

NT, H_num, Nk = 64, 100000, 64

Input_H = np.load('Input_H10W.npy')

print(Input_H.shape)

input_dim = NT * Nk

Nt = int(NT/2)

model = tf.keras.models.Sequential([

tf.keras.layers.InputLayer(input_shape=(input_dim,)) ,

# tf.keras.layers.Dense(4096, activation='relu') ,

# tf.keras.layers.BatchNormalization(),

tf.keras.layers.Dense(2048, activation='relu'),

tf.keras.layers.BatchNormalization(),

tf.keras.layers.Dense(1024, activation='relu'),

tf.keras.layers.BatchNormalization(),

tf.keras.layers.Dense(256, activation='relu'),

tf.keras.layers.BatchNormalization(),

tf.keras.layers.Dense(Nt, activation='tanh')

])

def channel(y_true, y_pred):

results, CSI = y_pred, y_true

a = tf.constant(3.1415926)

wr = tf.cos(results* a)

wi = tf.sin(results* a)

w = tf.complex(wr,wi) #actually W^H 1*16

mse = 0

for i in range(Nk):

hr = tf.slice(CSI, [0, NT*i], [-1, Nt])

hi = tf.slice(CSI, [0, NT*i+Nt], [-1, Nt])

h = tf.complex(hr,hi)

equal_H = K.batch_dot(w, tf.transpose(h))

euqal_H_conj = equal_H - 2j * tf.cast(tf.imag(equal_H), dtype=tf.complex64)

snr = euqal_H_conj * equal_H

snr = tf.cast(snr, dtype=tf.float32)

mse += 1 / (snr/Nt + 1)

mse = mse/Nk

return tf.reduce_mean(mse)

optimizer = tf.train.AdamOptimizer()

model.compile(optimizer, loss=channel)

print(model.summary())

checkpoint = ModelCheckpoint('./trained.h5', monitor='val_loss', verbose=0, save_best_only=True, mode='min', save_weights_only=True)

model.fit(Input_H, Input_H, epochs=2000, batch_size=2048, verbose=2, callbacks=[checkpoint], validation_split=0.2)

model.load_weights('./trained.h5')

程序的结果是好的,但它运行得太慢了。因为除了复杂的损失函数,一切都是正常的,所以我认为这是原因。我用一些软件监控GPU的利用率,在培训期间,有时达到30%,但最多的时候是0%。所以我的程序运行得很慢。在

那么,如何利用我的GPU来加速我的程序呢?

提前谢谢,对不起我的英语。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值