关于pythonAI绘画

这是一篇我用chatGPT写的AI绘画代码,但是第一行导入numpy就出了问题,tensorflow也是报错,我确定用pip下载了这两个库和模块,并且设置环境变量后仍然无效,以下是我的问题代码:

import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Reshape
from tensorflow.keras.layers import Conv2D, Conv2DTranspose
from tensorflow.keras.optimizers import Adam

# 定义生成器模型
def build_generator():
    model = Sequential()
    model.add(Dense(128 * 7 * 7, input_dim=100))
    model.add(Reshape((7, 7, 128)))
    model.add(Conv2DTranspose(64, (4, 4), strides=(2, 2), padding='same'))
    model.add(Conv2DTranspose(1, (7, 7), activation='sigmoid', padding='same'))
    return model

# 定义判别器模型
def build_discriminator():
    model = Sequential()
    model.add(Conv2D(64, (3, 3), strides=(2, 2), padding='same', input_shape=(28, 28, 1)))
    model.add(Conv2D(128, (3, 3), strides=(2, 2), padding='same'))
    model.add(Flatten())
    model.add(Dense(1, activation='sigmoid'))
    return model

# 构建生成对抗网络模型
def build_gan(generator, discriminator):
    model = Sequential()
    model.add(generator)
    model.add(discriminator)
    return model

# 生成随机噪声样本
def generate_noise(batch_size, noise_dim):
    return np.random.normal(0, 1, size=(batch_size, noise_dim))

# 加载手写数字数据集
(X_train, _), (_, _) = mnist.load_data()
X_train = X_train.reshape(-1, 28, 28, 1)
X_train = X_train.astype('float32') / 255.0

# 定义模型参数和优化器
noise_dim = 100
batch_size = 128
steps_per_epoch = len(X_train) // batch_size
epochs = 20

# 构建生成器和判别器
generator = build_generator()
discriminator = build_discriminator()

# 设置生成器的训练过程
discriminator.trainable = False
gan = build_gan(generator, discriminator)
gan.compile(loss='binary_crossentropy', optimizer=Adam())

# 开始训练
for epoch in range(epochs):
    for step in range(steps_per_epoch):
        # 训练判别器
        noise = generate_noise(batch_size, noise_dim)
        generated_images = generator.predict(noise)
        real_images = X_train[np.random.randint(0, X_train.shape[0], size=batch_size)]
        X = np.concatenate([real_images, generated_images])
        y = np.concatenate([np.ones((batch_size, 1)), np.zeros((batch_size, 1))])
        discriminator_loss = discriminator.train_on_batch(X, y)

        # 训练生成器
        noise = generate_noise(batch_size, noise_dim)
        y = np.ones((batch_size, 1))
        generator_loss = gan.train_on_batch(noise, y)

        # 输出损失信息
        print(f"Epoch: {epoch+1}/{epochs}, Step: {step+1}/{steps_per_epoch}, "
              f"Discriminator Loss: {discriminator_loss:.4f}, Generator Loss: {generator_loss:.4f}")

# 生成并展示随机样本
noise = generate_noise(10, noise_dim)
generated_images = generator.predict(noise)

fig, axs = plt.subplots(2, 5)
count = 0
for i in range(2):
    for j in range(5):
        axs[i,j].imshow(generated_images[count, :, :, 0], cmap='gray')
        axs[i,j].axis('off')
        count += 1

plt.show()

报错信息:

D:\AI\venv\Scripts\python.exe D:\AI\main.py 
Traceback (most recent call last):
  File "D:\AI\main.py", line 1, in <module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'

Process finished with exit code 1

问题点: 在虚拟环境venv下运行项目,缺少numpy模块
分析: 当前环境和设置的系统环境不是同一个,导致模块缺失报错.
解决办法: 删除venv文件夹,然后重新设定运行环境.

pip install numpy安装模块numpy