def _main(): t1 = read_img('D:/SteganoGAN-master/research/ruanjian.png') t2 = read_img('D:/SteganoGAN-master/research/outtt.png') with tf.compat.v1.Session() as sess: sess.run(tf.global_variables_initializer()) y = sess.run(psnr(t1, t2)) print(y) 怎么用TensorFlow2.1运行
时间: 2023-07-16 19:11:55 浏览: 109
在 TensorFlow 2.1 中,Session 已经被移除了,所以你需要使用 Eager Execution 模式下的 TensorFlow。此外,TensorFlow 2.1 默认使用 Keras API,所以你需要使用 `tf.keras` 模块来代替原来的 `tf.layers` 和 `tf.nn` 模块。修改后的代码如下:
```
import tensorflow as tf
from tensorflow.keras.preprocessing.image import load_img, img_to_array
def read_img(path):
img = load_img(path, target_size=(256, 256))
img = img_to_array(img) / 255.0
return img
def psnr(y_true, y_pred):
return tf.image.psnr(y_true, y_pred, max_val=1.0)
def main():
t1 = read_img('D:/SteganoGAN-master/research/ruanjian.png')
t2 = read_img('D:/SteganoGAN-master/research/outtt.png')
y = psnr(t1, t2)
print(y.numpy())
if __name__ == '__main__':
main()
```
在这个修改后的代码中,我们首先使用 `load_img` 和 `img_to_array` 函数读取图像数据,并将其归一化到 [0,1] 范围内。接着,我们使用 `tf.image.psnr` 函数计算两张图像之间的 PSNR 值,最后使用 `numpy()` 方法将结果转换为 NumPy 数组并打印出来。
阅读全文