導(dǎo)入模塊:import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport tensorflow as tffrom tensorflow.keras.layers import GaussianNoisefrom tensorflow.keras.datasets import mnist(X_train, y_train), (X_test, y_test) = mnist.load_data()重新縮放數(shù)據(jù)X_train = X_train/255X_test = X_test/255plt.imshow(X_train[0])使用 std dev=0.2 添加高斯噪聲sample = GaussianNoise(0.2)noisey = sample(X_test[0:2],training=True) #plt.imshow(noisey[0])獲取錯(cuò)誤:ValueError: Tensor conversion requested dtype float64 for Tensor with dtype float32: 'Tensor("gaussian_noise_4_1/random_normal:0", shape=(2, 28, 28), dtype=float32)'
2 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
類型轉(zhuǎn)換成本很高,因此 Tensorflow 不進(jìn)行自動(dòng)類型轉(zhuǎn)換。默認(rèn)情況下,Tensorflow 的數(shù)據(jù)類型是float32
,而您導(dǎo)入的數(shù)據(jù)集的數(shù)據(jù)類型是float64
。您只需將可選的 dtype 參數(shù)傳遞給GaussianNoise
:
sample = GaussianNoise(0.2, dtype=tf.float64)
或者投射數(shù)組:
noisey = sample(X_test[0:2].astype(np.float32),training=True)
我建議第二個(gè)。

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
我在我的本地主機(jī)上為 Jupyter Notebook 嘗試了這個(gè),以下是帶有警告的結(jié)果。
從警告中可以清楚地看出類型轉(zhuǎn)換的問題是非常昂貴的。您可以將其改進(jìn)為:
X_train = X_train.astype('float32') / 255
X_test = X_test.astype('float32') / 255
添加回答
舉報(bào)
0/150
提交
取消