這是玄學,不是問題。遇到了請絕對路徑改相對路徑,相對路徑改絕對路徑,並祈禱有效。
pyx檔案的import需要cython庫的支援,因此要先裝cython,並在import相應pyx庫前加入:
import pyximport
pyximport.install()
若再出現fatal error: numpy/arrayobject.h: no such file or directory錯誤,則在cmd執行建立相應庫的**時:
python setup.py build_ext --include-dirs=c:\programdata\anaconda3\envs\pytorch\lib\site-packages\numpy\core\include
後面的位址因人而異,填自己電腦裡的numpy位址即可。
python 3.x版本自帶,python 2.x安裝:pip install futures
同資料夾下的a.py要引用b.py:
#this code file is named "a.py"
from . import b
tensorflow執行時缺省會載入全部視訊記憶體,這樣一來可能其他程式就無法執行了,解決方式:
import tensorflow as tf
config = tf.configproto()
config.gpu_options.allow_growth = true
session = tf.session(config=config, ...)
來多少任務用多少視訊記憶體,不會直接霸佔全部,或者直接設定最大使用量(30%):
config = tf.configproto()
config.gpu_options.per_process_gpu_memory_fraction = 0.3
session = tf.session(config=config, ...)
import os
import tensorflow as tf
os.environ["cuda_visible_devices"] = "0"
from keras.backend.tensorflow_backend import set_session
config = tf.configproto()
config.gpu_options.per_process_gpu_memory_fraction = 0.3
set_session(tf.session(config=config))
通過os設定程式所使用的顯示卡(標號從「0」開始),後面設定使用視訊記憶體佔全部視訊記憶體的百分比(30%)。
執行結束,釋放視訊記憶體:
from keras import backend as k
k.clear_session()
參考博文:
在跑深度學習模型的時候遇到的錯誤,一般是模型引數的問題,如果經檢查發現引數沒問題,改下batch_size試試(改大或改小,不改維度)……
可能情況二:資料集中樣本總數與batch size不匹配,如樣本總數無法整除以batch size,更改batch size即可。
影象分割任務中,訓練時經模型**輸出的內容格式為[batchsize, n_class, height, weight],而影象分割任務中的標籤一般是單通道的,格式為[batchsize, channel=1, height, weight]。若損失函式為crossentropyloss(),則在計算損失函式時應將真實標籤格式調整為[batchsize, height, weight],否則便會報出上述錯誤。因此,需要對標籤的tensor降維:
true_labels = true_labels.squeeze()
用於jupyter notebook的.ipynb檔案中,作用是可令matplotlib的畫圖函式以jupyter notebook為畫布繪製影象,在jupyter中使用很方便,但移植到普通的.py中則是錯誤命令,注釋掉即可。
f = open('a.txt','w')
f.write('132\n321')
f.close()
f = open('a.txt','r')
str = f.read() # str = '132\n321'
f.close()
f = open('a.txt','rb')
str = f.read() # str = '132\r\n321'
f.close()
pycharm編譯器下,正常往txt中寫乙個\n,文字讀入(引數為'r')是乙個\n,但在二進位制讀入(引數為'rb')的情況下變成了\r\n。
而正常往txt中寫乙個\r,二進位制讀入的情況下是\r,但文字讀入卻變成了\n。
按照網上的說法,\r表示回車(carriage return,cr),作用是使游標回到行頭,\n表示換行(line feed,lf),作用是使游標移動到下一行,兩者一起使用才相當於按下「enter」鍵。
在pycharm中,編譯器會以二進位制格式讀入檔案後在\n前新增\r,在文字格式讀入檔案後自動將\r轉換成\n。(僅在windows系統下)
若要避免前者的發生,對字串進行賦值、replace操作是沒用的,應在寫檔案的時候:
f = open('a.txt','w',newline='\n')
這樣編譯器就不會自作主張在\n前新增\r了。
不同作業系統的檔案系統採用了不同的回車換行操作,在unix系統中,每行結尾只有「\n」,即lf模式,而windows系統中檔案每行結尾為「\r\n」,即crlf模式。
apache服務崩潰捉蟲記
公元2010年8月31日15點10分54秒,我的apache服務罷工了。哥很鬱悶 當時哥正埋頭測試網頁,沒有任何徵兆,網頁就不解析了,然後寫著大大的 forbidden字樣,我當時第一反應就是許可權,把許可權設定成777,可轉頭就糾結了,心想我又不是linux,哪來的許可權777 啊,二來我又沒有裝...
Python學習 持續更新
先立個flag 2017 10 13 time 2017 10 15 今天花時間搭好了環境,寫了幾個print語句。實際上一臉懵逼,還不太清楚python的整個結構。說實話我找不到類似c語言裡面的.c h檔案這樣的。對整個結構都不太清楚,也沒找到.py檔案,實在是不清楚。哦原來是建立檔案的時候錯了 ...
Python 問題彙總 持續更新
2017 06 17 1.使用pycharm,寫入如下 的時候 import os os.system tasklist 會發現中文亂碼的情況,這個時候進行以下修改 2.print i love 中國 列印字串的時候,出現亂碼 解決方案如下 1 檔案儲存格式為utf 8 指定的是檔案編碼 2 在檔案...