tomorrow918 发表于 2021-6-24 17:40:08

我装了tensorflow后发现c盘有重复的目录和文件,另外问下库文件修改源码怎么生效

我装了tensorflow后发现C盘有重复的路径,比如:
C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\site-packages\~ensorflow\python\keras
C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\site-packages\keras
都是一样的文件,并且修改时间一模一样,也不知道我写的程序运行时到底加载的哪个地方的文件。

另外我想修改C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\site-packages\keras\datasets这个目录下的文件fashion_mnist.py,我自己的代码运行这个文件里的接口了,修改后发现程序没有变化,怎么让他生效呢?(这个文件在上面两个目录都有,我两个地方都修改了,但是都不生效)

nahongyan1997 发表于 2021-6-24 17:52:11

运行 print(sys.path) 你会看到一堆目录,
python 会优先从相对靠前的目录加载模块。

修改了库文件的代码后只要保存就会立即生效,
你以后使用修改后的模块时会使用你已经修改好的模块。

打字不易,记得设置最佳{:10_333:}

tomorrow918 发表于 2021-6-24 19:10:52

nahongyan1997 发表于 2021-6-24 17:52
运行 print(sys.path) 你会看到一堆目录,
python 会优先从相对靠前的目录加载模块。



我改的那个模块的源文件有个目录__pycache__,里面有与源文件同名的pyc文件,我查了一下,这是什么字节码文件,我改了源文件后就是没有执行改后的文件,太奇怪了

tomorrow918 发表于 2021-6-24 19:13:54

本帖最后由 tomorrow918 于 2021-6-24 19:15 编辑

我用print(sys.path)显示下列结果:
['D:\\python', 'D:\\', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\Python37.zip', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\Pythonwin', 'C:\\Users\\admin\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\win32', 'C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\win32\\lib', 'D:\\python']
我搜索了我引用的模块的源文件fashion_mnist.py里面的接口load_data,我在这个接口里加入一行 print('aaaaaaaaaaaaaaaaaaaaaaa'),运行的时候就是不显示这个调试信息
只有下面两个目录有这个文件:
C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\site-packages\keras\datasets
C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\site-packages\~ensorflow\python\keras\datasets
我把这两个目录的文件fashion_mnist.py都加入了上面print('aaaaaaaaaaaaaaaaaaaaaaa')就是不显示出来。


我自己的代码调用方式:
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

nahongyan1997 发表于 2021-6-24 20:30:45

本帖最后由 nahongyan1997 于 2021-6-24 20:36 编辑

放代码吧,不然真不知道

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

这样编程真的不会报错吗?

nahongyan1997 发表于 2021-6-24 20:36:09

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

我想说这样编程真的不会报错吗??

nahongyan1997 发表于 2021-6-24 20:49:50

本帖最后由 nahongyan1997 于 2021-6-24 20:51 编辑

为什么我的回答消失了


(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
我觉得你这条语句是不是报错了。

直接这样执行试试:
fashion_mnist.load_data()

或者:
keras.datasets.fashion_mnist()

tomorrow918 发表于 2021-6-24 21:05:37

nahongyan1997 发表于 2021-6-24 20:49
为什么我的回答消失了




语句没问题,返回的就是两个元组,程序功能都没有问题。我就是想改源模块的代码试试效果

nahongyan1997 发表于 2021-6-24 21:07:03

tomorrow918 发表于 2021-6-24 21:05
语句没问题,返回的就是两个元组,程序功能都没有问题。我就是想改源模块的代码试试效果

不方便放代码??

tomorrow918 发表于 2021-6-24 21:16:39

nahongyan1997 发表于 2021-6-24 21:07
不方便放代码??

方便呀,关键的我都放了,那我再放一点。

下面是我的代码:
# TensorFlow and tf.keras
import tensorflow as tf
import sys
from tensorflow import keras

# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
#print(sys.path)

print(tf.__version__)
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()


下面是
"""Fashion-MNIST dataset."""

import gzip
import os

import numpy as np

from keras.utils.data_utils import get_file
from tensorflow.python.util.tf_export import keras_export


@keras_export('keras.datasets.fashion_mnist.load_data')
def load_data():
print('aaaaaaaaaaaaaaaaaaaaaaa')
dirname = os.path.join('datasets', 'fashion-mnist')
base = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'
files = [
      'train-labels-idx1-ubyte.gz', 'train-images-idx3-ubyte.gz',
      't10k-labels-idx1-ubyte.gz', 't10k-images-idx3-ubyte.gz'
]

paths = []
for fname in files:
    paths.append(get_file(fname, origin=base + fname, cache_subdir=dirname))

with gzip.open(paths, 'rb') as lbpath:
   
    y_train = np.frombuffer(lbpath.read(), np.uint8, offset=8)

with gzip.open(paths, 'rb') as imgpath:
    x_train = np.frombuffer(
      imgpath.read(), np.uint8, offset=16).reshape(len(y_train), 28, 28)

with gzip.open(paths, 'rb') as lbpath:
    y_test = np.frombuffer(lbpath.read(), np.uint8, offset=8)

with gzip.open(paths, 'rb') as imgpath:
    x_test = np.frombuffer(
      imgpath.read(), np.uint8, offset=16).reshape(len(y_test), 28, 28)

return (x_train, y_train), (x_test, y_test)

tomorrow918 发表于 2021-6-24 21:21:19

我自己的代码:
# TensorFlow and tf.keras
import tensorflow as tf
import sys
from tensorflow import keras

# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
#print(sys.path)

print(tf.__version__)
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
后面还有很多,就不贴了,能正常跑



调用的文件: fashion_mnist.py:
import gzip
import os

import numpy as np

from keras.utils.data_utils import get_file
from tensorflow.python.util.tf_export import keras_export


@keras_export('keras.datasets.fashion_mnist.load_data')
def load_data():
      print('aaaaaaaaaaaaaaaaaaaaaaa')

后面还有很多,我只想加了这一行后能打印出来就行

nahongyan1997 发表于 2021-6-25 12:32:31

tomorrow918 发表于 2021-6-24 21:21
我自己的代码:
# TensorFlow and tf.keras
import tensorflow as tf


我得说我确实不会用函数修饰符,
但是你把@ 的那一行去掉肯定就能用了。

tomorrow918 发表于 2021-6-25 17:14:39

nahongyan1997 发表于 2021-6-25 12:32
我得说我确实不会用函数修饰符,
但是你把@ 的那一行去掉肯定就能用了。

大神,我去掉了也不行,要不你在线帮我调一下吧,我找不到头绪了。我QQ:85511938

nahongyan1997 发表于 2021-6-25 17:49:30

tomorrow918 发表于 2021-6-25 17:14
大神,我去掉了也不行,要不你在线帮我调一下吧,我找不到头绪了。我QQ:85511938

这活没有20鱼币能给干嘛{:10_256:}
页: [1]
查看完整版本: 我装了tensorflow后发现c盘有重复的目录和文件,另外问下库文件修改源码怎么生效