1. 學python可以做什麼
1WEB開發
在國內,豆瓣一開始就使用Python作為web開發基礎語言,知乎的整個架構也是基於Python語言,這使得web開發這塊在國內發展的很不錯。
盡管目前Python並不是做Web開發的首選,但一直都佔有不可忽視的一席。Python中有各類Web框架,無論是簡單而可以自由搭配的微框架還是全功能的大型MVC框架都一應俱全,這在需要敏捷開發的Web項目中也是十分具有優勢的。廣泛使用(或曾經廣泛使用)Python提供的大型Web服務包括知乎、豆瓣、Dropbox等網站。加之Python本身的「膠水」特性,很容易實現在需要大規模性能級計算時整合其它語言,同時保留Web開發時的輕便快捷。
除此之外,Python中還有大量「開箱即用」的模塊,用於與各種其它網站的對接等相關功能。如果希望開發個微信公眾號相關功能,wechat-sdk/weixin-python等包,能夠使你幾乎完全不用管文檔中提及的各種伺服器交互細節,專注於功能實現即能完成開發。
目前,國內的Python web開發主要有兩個技術棧:
(1)Django
Django是一個高級的敏捷web開發框架,如果學會了,擼一個網站很快。當然如果純粹比擼網站的速度,基於ruby的Ruby on rails顯然更快,但是Django有一個優勢就是性能優秀,更適合國內網站的應用場景。國外的著名圖片社區Pinterest早期也是基於Django開發的,承受了用戶快速增長的沖擊。所以說如果你想快速開發一個網站,還能兼顧APP客戶端的API調用需求,Django是可以信賴的。
(2)Flask
相對於Django,Flask則是一個輕量級的web框架,Flask的最大的優勢是性能優越,適合配合手機客戶端開發後台API服務。國內基於Flask的Restful API服務這快很火,也是需求最大的。知名的比如網路、網易、小米、陌陌等等很多公司都有基於Flask的應用部署。當然,如果你想做一個傳統的web網站,還是建議使用Django,Flask的優勢是後端、API,不適合構建全功能網站。
2網路爬蟲
網路爬蟲是Python比較常用的一個場景,國際上,google在早期大量地使用Python語言作為網路爬蟲的基礎,帶動了整個Python語言的應用發展。以前國內很多人用採集器搜刮網上的內容,現在用Python收集網上的信息比以前容易很多了。
Python在這個方面有許多工具上的積累,無論是用於模擬HTTP請求的Requests、用於HTML DOM解析的PyQuery/BeautifulSoup、用於自動化分布式爬取任務的Scrapy,還是用於最簡化資料庫訪問的各種ORM,都使得Python成為數據爬取的首選語言之一。特別是,爬取後的數據分析與計算是Python最為擅長的領域,非常容易整合。目前Python比較流行的網路爬蟲框架是功能非常強大的scrapy。
3人工智慧與機器學習
人工智慧是現在非常火的一個方向,AI熱潮讓Python語言的未來充滿了無限的潛力。現在釋放出來的幾個非常有影響力的AI框架,大多是Python的實現,為什麼呢?
因為Python足夠動態、具有足夠性能,這是AI技術所需要的技術特點。比如基於Python的深度學習庫、深度學習方向、機器學習方向、自然語言處理方向的一些網站基本都是通過Python來實現的。機器學習,尤其是現在火爆的深度學習,其工具框架大都提供了Python介面。Python在科學計算領域一直有著較好的聲譽,其簡潔清晰的語法以及豐富的計算工具,深受此領域開發者喜愛。
6桌面程序
Python也可以用於桌面軟體開發(如sublime text等),甚至移動端開發(參看kivy)。Python簡潔方便,各種工具包齊全的環境,能大幅度減少開發者的負擔。著名的UI框架QT有Python語言的實現版本PyQT。Python簡單易用的特性加上QT的優雅,可以很輕松的開發界面復雜的桌面程序,並且能輕松實現跨平台特性。
7多媒體應用
可以用Python裡面的PIL、Piddle、ReportLab 等模塊對圖象、聲音、視頻、動畫等進行處理,還可以用Python生成動態圖表和統計分析圖表。另外,還可以利用PyOpenGl模塊非常快速有效的編寫出三維場景。
2. 學python能做什麼
Python第三方模塊眾多,下面我介紹一些比較實用而又有趣的模塊,主要分為爬蟲、數據處理、可視化、機器學習、神經網路、股票財經、游戲這7個方面,主要內容如下:
1.爬蟲:
相信大部分人都用Python爬過數據,目前來說,比較流行的框架是scrapy,對爬取數據來說,簡單方便了不少,只需要自己添加少量的代碼,框架便可啟動開始爬取,當然,還有簡單地爬蟲包,像requests+BeautifulSoup,對於爬取簡單網頁來說,也足夠了:
如果你想要學好Python最好加入一個好的學習環境,可以來這個Q群,首先是629,中間是440,最後是234,這樣大家學習的話就比較方便,還能夠共同交流和分享資料
2.數據處理:
numpy,scipy,pandas這些包對於處理數據來說非常方便,線性代數、科學計算等,利用numpy處理起來非常方便,pandas提供的DataFrame類可以方便的處理各種類型的文件,像excel,csv等,是分析數據的利器:
3.可視化:
這里的包其實也挺多的,除了我們常用的matplotlib外,還有seaborn,pyecharts等,可以繪制出各種各樣類型的圖形,除了常見的線圖、餅圖和柱狀圖外,還可以繪制出地圖、詞雲圖、地理坐標系圖等,美觀大方,所需的代碼量還少,更容易上手:
4.機器學習:
說起python機器學習,大部分人都應該scikit-learn這個包,常見的機器學習演算法,像回歸、分類、聚類、降維、模型選擇等,這里都有現成的代碼可供利用,對於這機器學習方面感興趣的人來說,這是一個入門機器學習的好包:
5.神經網路:
說起神經網路,大部分人都應該會想起深度學習,對應的就會想到谷歌目前非常流行的深度學習框架—tensorflow,tesndorflow可被用於語音識別和圖像識別等眾多領域,其發展前景光明,對於這方面感興趣的科研人員來說,是一個很不錯的工具,當然,還有基於tensorflow的theano,keras等,都是學習神經網路的不錯選擇:
6.股票財經:
對於股票和財經比較感興趣的朋友來說,python也提供了現成的庫來獲取和分析股票財經數據—tushare,tushare是一個免費、開源的python財經數據介麵包,可以快速的獲取到國內大部分股票數據,對於金融分析人員來說,可以說是一個利器,降低了許多任務量:
7.游戲:
Python專門為游戲開發提供了一個平台—Pygame,對於想快速開發小型游戲的用戶來說,是一個很不錯的選擇,簡單易學、容易上手,脫離了低級語言的束縛,使用起來也挺方便的:
3. Keras中的Input shape應該怎麼理解啊
首先你要知道在keras中,數據是以張量的形式表示的,張量的形狀就是shape,比如,一個一階的張量[1,2,3]的shape是(3,);一個二階的張量[[1,2,3],[4,5,6]]的shape是(2,3);一個三階的張量[[[1],[2],[3]],[[4],[5],[6]]]的shape是(2,3,1)。更多關於這部分的內容,請看http://blog.csdn.net/u013378306/article/details/56281549。
input_shape就是指輸入張量的shape。你描述的問題中, input_dim=784,說明輸入是一個784維的向量,這相當於一個一階的張量,它的shape就是(784,)。因此,input_shape=(784,)。
4. 如何從零使用 Keras + TensorFlow 開發一個復雜深度學習模型
Keras 是提供一些高可用的 Python API ,能幫助你快速的構建和訓練自己的深度學習模型,它的後端是 TensorFlow 或者 Theano 。本文假設你已經熟悉了 TensorFlow 和卷積神經網路,如果,你還沒有熟悉,那麼可以先看看這個10分鍾入門 TensorFlow 教程和卷積神經網路教程,然後再回來閱讀這個文章。
在這個教程中,我們將學習以下幾個方面:
為什麼選擇 Keras?為什麼 Keras 被認為是深度學習的未來?
在Ubuntu上面一步一步安裝Keras。
Keras TensorFlow教程:Keras基礎知識。
了解 Keras 序列模型
4.1 實際例子講解線性回歸問題
使用 Keras 保存和回復預訓練的模型
Keras API
6.1 使用Keras API開發VGG卷積神經網路
6.2 使用Keras API構建並運行SqueezeNet卷積神經網路。
5. keras輸入怎麼把2維數據怎麼變為3維,送到lstm
np.reshape(x,(9000,16,48))
x是你的數據 確保加粗的兩個參數乘積是768就行了,這里16是時間步數,48是每個時間步特徵向量的長度。
6. 如何把自己數據轉化成keras的rnn需要的數據
就一個abcd作為一條樣本即可,a b c d 的每一步都會計算loss的,所以拆開也沒啥用 另外你這個不是序列標注,因為你是要預測下一個,而不是給整體一個最佳序列
7. keras 模型預測的結果為什麼自動從大到小排序了
另外,訓練誤差是訓練數據每個batch的誤差的平均。在訓練過程中,每個epoch起始時的batch的誤差要大一些,而後面的batch的誤差要小一些。另一方面,每個epoch結束時計算的測試誤差是由模型在epoch結束時的狀態決定的,這時候的網路將產生較小的誤差。
可以通過定義回調函數將每個epoch的訓練誤差和測試誤差並作圖,如果訓練誤差曲線和測試誤差曲線之間有很大的空隙,說明你的模型可能有過擬合的問題。當然,這個問題與Keras無關。
8. 用深度學習框架Keras訓練數據時,輸出的預測值全是1.0,是怎麼回事
同問一下這個問題
9. keras 如何輸出softmax分類結果屬於某一類的概率
softmax是用於單標簽輸出,模型訓練後,調用model.predict函數就可以輸出結果為[0.5,0.4,0.1](輸出數量為最後一層隱藏層的neuron數)這樣的矩陣,裡面即為你所需的預測概率值,值得注意的是,softmax會限制輸出的所有概率相加為1。
如果需要預測的是多個標簽而不是單個標簽,則需要使用sigmoid作為輸出激活函數,那麼輸出就不再強制相加為1,可以得到每個分類的實際預測值,此時只需要設置一個致信的threshold則可以得到多個分類預測值。
每個激活函數的詳細解釋看這里網頁鏈接
10. 關於keras構建的神經網路的輸出結果解釋
ETA:Estimated Time of Arrival。Loss:系統的損失。acc:Accuracy正確率。